我正在为Java EE应用程序编写硒测试。我的GUI基于Primefaces框架。我针对IE 9进行了测试。
我首先测试了登录页面。 问题在于,在将用户和密码字符串发送到字段后,硒会立即单击“提交”按钮。 由于浏览器尚未准备就绪,因此会引起问题。 Selenium单击“提交”按钮,我的应用程序没有反应。 该问题十次发生一次。
我试图帮助我在下面附加的waitUntilValue方法,但是并不能解决问题。 您能否给我提示在单击按钮之前该做什么或要等待什么? Thread.sleep不是我要使用的解决方案:)
public void login(String username, String password) {
setUsername(username);
setPassword(password);
clickLogin();
}
public void setPassword(String password) {
By passwordElement = By.id("LoginForm:password");
WebDriverWait wait = new WebDriverWait(this.driver, 3);
WebElement passwordInputField = driver.findElement(passwordElement);
wait.until(ExpectedConditions.visibilityOf(passwordInputField));
passwordInputField.clear();
passwordInputField.sendKeys(password);
waitUntilValue(password, passwordElement);
}
private void waitUntilValue(String inputValue, By by) {
Function<WebDriver, Object> condition = (WebDriver webDriver) -> {
String val = driver.findElement(by).getAttribute("value");
if (inputValue.equals(val)) {
return true;
} else {
return null;
}
};
waitUntil(condition);
}