2017-03-18 4 views
0

Ich verwende Visual Studio 2015 als meine IDE und Ich installierte Winkelmesser (Version 0.10.2) zu meinem Projekt. In meinem Code unter [TestMethod] public void Login() { IWebDriver driver = new ChromeDriver();
var ngDriver = new NgWebDriver(driver); ngDriver.Url = "https://weather.com"; ngDriver.FindElement(By.ClassName("user-login")).Click();
Jetzt möchte ich einen 'Login' Button mit ButtonText Locator finden. Allerdings, wenn ich ngDriver.FindElement(NgBy.) versucht, nur wurden folgende Optionen nach NgBy angezeigt .: Bindung, Equals, ExactBinding, ExactRepeater, Model, Reference, Repeater, SelectedOpionWinkelmesser-Netz NgBy. Einige Locatoren fehlen

Als ich das versucht, mit WebStorm und Javascript, Ich war in der Lage, mit der Schaltfläche als Element (by.buttonText ('Log In')) zu finden und zu arbeiten.) click();

Warum erscheint so etwas wie 'ButtonText' nicht nach NgBy?

Selbst in Anthony Chu's blog verwendet er Ngby.Input(), die ich nicht in der Liste habe. Warum vermisse ich all diese Locators?


fand ich, dass NgBy Klasse unter Protractor nur Gefolgschaften bietet: class NgBy

so vielleicht Protractor-net NgBy.ButtonText bietet keine()? Aber es ergibt keinen Sinn für mich. Ich denke, dass ich immer noch etwas falsch mache!

Antwort

0

Siehe Kommentare dieser Pull-Anforderung: https://github.com/bbaia/protractor-net/pull/22

+0

Diese Diskussion erklärt nicht die fehlenden NgBys. Wie JP-3 in seinem letzten Kommentar erwähnt, sind diese Methoden [Teil des ursprünglichen Winkelmesserprojekts] (https://github.com/angular/protractor/blob/master/lib/locators.ts) und es ist fraglich, ob IMO beschließen, sie nicht in den .Net-Port aufzunehmen. –

0

Sie haben Recht, in der "main" Protractor-net Gabel (von bbaia gehalten) einige NgBys fehlen, wenn auf das ursprüngliche Protractor Projekt zu vergleichen.

Option1

Sie können in der Regel statt die normale .Net WebDriver von (zB XPath oder CSSSelector), um die Elemente zu finden:

Find button by inner text with XPath

Find button by attribute value and text with XPath

Sie können auch finden Sie diese wertvolle - Find element by case insensitive text with XPath

Option2

Sie können auch wenn Sie Ihre eigene Implementierung mit so etwas wie driver.FindElements(By.TagName("button")).Where(e => e.Text.Trim() == "Text").FirstOrDefault(); Beachten Sie, dass in vielen Fällen ist dies viel langsamer als die Verwendung von XPath schreiben.

Option3

Wenn, da Sie Code portieren, die bereits diese Methoden verwendet, ist es für Sie wichtig, sie zu haben, können Sie sergueik Gabel versuchen, die die fehlenden Methoden hat: https://github.com/sergueik/protractor-net

Beachten Sie, dass es weiter hinter der Hauptgabel ist - https://github.com/sergueik/protractor-net/network

Verwandte Themen