硒点击提交按钮过早

时间:2019-06-18 14:40:49

标签: jsf selenium-webdriver primefaces

我正在为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);
    }


0 个答案:

没有答案