Селен нажимает кнопку отправки слишком рано - PullRequest
0 голосов
/ 18 июня 2019

Я пишу тесты селена для моего приложения 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);
    }


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...