Я пишу тесты селена для моего приложения Java EE.Мой графический интерфейс основан на платформе 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);
}