Ich teste eine userdatepage mit Selenium Webdriver/Java 7/Firefox. Ich habe eine Reihe von 13 verschiedenen Testdaten in einer Tabelle in Excel gespeichert. Der erste Test ist über den Namen des Benutzers zu fehlen, der zweite Test ist über einen falschen Wert für den Namen des Benutzers, der dritte ist etwa im richtigen Passwort Wert und so weiter. ..Sendkeys zum ersten Feld der Seite schlägt manchmal fehl
Von Zeit zu Zeit Für den userdatapage ich mit dem pagefactory
Modell Selenium
ein Pageobject instanziiert bin mit, aber nicht sehr oft, das Namensfeld, das erste Feld auf der Seite, gefüllt nicht. Was ich mache ist zuerst click
, dann clear
und schließlich send keys
zum Feld.
Ich kann dem Code etwas Verzögerung hinzufügen, aber was ich nicht verstehe ist, warum in diesem Fall keine Element Ausnahme nicht gefunden wird. Ist das, weil ich das PageFactory
Konzept verwende. Kann mir das jemand erklären?
Dies ist der HTML-Code der ersten Inputfield:
<div class="form-group">
<div class="input-group">
<div class="input-group-addon">
<span class="glyphicon glyphicon-user"></span>
<span class="asterisk glyphicon glyphicon-asterisk"></span>
</div>
<div class="input-group-input">
<input type="text" class="form-control" name="inputName" title="Volledige naam inclusief voorletters of voornaam" placeholder="Voorletters/Voornaam Achternaam"data-bind="value:name"/>
<span class="help-block" id="naamMessage"> </span>
</div>
</div>
</div>
Und hier ist der Java
Code, um das Feld zu füllen:
public void setUserData(String naam, String password, String passwordRepeat, String land, String straat,
String postcode, String stad, String telefoonnr, String akkoord) {
setInputNameTextBox(naam);
setInputPasswordTextBox(password);
setInputPasswordRepeatTextBox(passwordRepeat);
setInputCountryTextBox(land);
setInputStreetTextBox(straat);
setInputZipCodeTextBox(postcode);
setInputCityTextBox(stad);
setInputPhoneTextBox(telefoonnr);
if (akkoord != "") {
clickInputApprove();
}
}
public void setInputNameTextBox(String naam) {
inputName.click();
inputName.clear();
inputName.sendKeys(naam);
}
Stellen Sie 'HTML' für Eingabefelder und Code bereit, den Sie versucht haben – Andersson