Sendkeys到第一个字段的页面有时会失败

时间:2016-06-20 08:27:48

标签: java selenium

我正在使用 Selenium Webdriver / Java 7 / Firefox 测试用户数据。 我有一组13个不同的testdata存储在Excel中的表中。 第一个测试是关于缺少用户名,第二个测试是关于用户名的错误值,第三个测试是关于正确的密码值,依此类推。 对于userdatapage,我使用pagefactory模型Selenium实例化的网页对象。

有时,但不常见的是,名称字段(页面上的第一个字段)未填充。我正在做的是先click,然后是clear,最后是send keys

我可以为代码添加一些延迟,但我不理解的是为什么在这种情况下不会抛出元素未找到异常。这是因为我使用的是PageFactory概念。有人可以向我解释一下吗?

这是第一个输入字段的HTML:

<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>

以下是填充该字段的Java代码:

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);
}

1 个答案:

答案 0 :(得分:0)

您可以在POM类中使用AjaxElementLocatorFactory,并检查在这种情况下是否抛出错误。