I erstellt separate Klasse für eine Login-Seite wie unten:Geb: Set Text in einem Eingabefeld
class LoginPage extends Page{
static at = { title == "XXX" }
static content = {
username(wait:true) { $(By.xpath('//input[@name="mailAddress"]'))}
password(wait:true) { $(By.xpath('//input[@name="password"]'))}
}
}
Und nun die Benutzername und das Passwort von einer anderen Klasse abgelegt Zugriff mit dem folgenden Code genannt HomePageLogin:
Browser.drive {
to LoginPage
at LoginPage
report "AtLoginPage"
username.value("username")
password.value("password")
}
Aber immer folgende Fehlermeldung:
Caught: groovy.lang.MissingPropertyException: No such property: username for class: MyPackage.HomePageLogin
groovy.lang.MissingPropertyException: No such property: username for class: MyPackage.HomePageLogin
at MyPackage.HomePageLogin$_run_closure1.doCall(HomePageLogin.groovy:18)
at MyPackage.HomePageLogin$_run_closure1.doCall(HomePageLogin.groovy)
at geb.Browser.drive(Browser.groovy:1061)
at geb.Browser$drive$0.callStatic(Unknown Source)
at geb.Browser.drive(Browser.groovy:1031)
at geb.Browser$drive.call(Unknown Source)
at MyPackage.HomePageLogin.run(HomePageLogin.groovy:12)
Wie kann ich den Benutzernamen gesetzt und Passwort?
kann ich den Namen und das Kennwort in HomePageLogin Klasse mit folgendem Code ein:
Browser.drive {
to LoginPage
at LoginPage
report "AtLoginPage"
$("input",name:"mailAddress").value("ID")
$("input",name:"password").value("pass")
}
Aber ich will nicht, Inline-Scripting. Ich möchte, dass die Elemente über die entsprechende Klasse, die in diesem Fall LoginPage ist, definiert und aufgerufen werden können.
Wenn ich von XPath komplexe Elementauswahl benötigen, wie ich XPath verwenden sollte als? –
Sie können [Xpath-Selektoren] (http://www.gebish.org/manual/current/#using-webdriver-s-code-by-code-class-selectors) verwenden, aber ich denke, dass Ihr Xpath in diesem Fall war aus irgendeinem Grund falsch. –
Ich verifizierte meinen XPath mit Firebug im Firefox-Browser und es war OK. Deshalb war ich verwirrt. Suchen Sie weiterhin nach einer Problemumgehung für die Verwendung von XPath anstelle von JQuery-Selektor. –