Webdriver不保存条目

时间:2014-03-23 22:37:28

标签: webdriver

我有一个简单的登录页面,我正在使用Webdriver进行测试。我将用户名和密码字段声明为webelements,我用id查看。与注册按钮相同。我在点击注册之前填充了用户和密码字段,但事情发生的速度很快,看起来在用户和p / w字段填充之前点击了注册,从而总是导致错误声明两个字段不能为空。但这并不总是发生。可以肯定的是,我在用户和密码设置器之后插入了Thread.sleep,但没有看到任何更改。我可以看到字段被填满,并且有一个等待时间(我通过睡眠引入),但是当点击注册按钮时,用户和密码字段再次变为红色,好像它们没有被填充,然后再继续。我使用了Webdriver的流畅API来确保按钮都可以点击,但这也没有什么区别。以前有人见过这种行为吗?你是怎么解决的? (我这里没有附加代码片段,因为场景非常基本)。

编辑:在此处附加代码段:

@FindBy(id = "signUp_id")
WebElement signUpButton;
@FindBy(id = "UserName")
WebElement userNameElement;
@FindBy(id = "Password")
WebElement passwordElement;
writeInTextField(call(By.id("UserName")), userName);
writeInTextField(call(By.id("Password")), password);
Thread.sleep(10000);
call(By.id("signUp_id")).click();

    public WebElement call(final By locator) {
        WebElement webElement = fluentWait.until(new Function<WebDriver, WebElement>() {
            public WebElement apply(WebDriver driver) {
                return driver.findElement(locator);
        }
    });
    return webElement;
}

 public void writeInTextField(WebElement we, String sText) {
    we.clear();
    we.sendKeys(sText);
}

我将fluentWait变量初始化为:

    fluentWait = new FluentWait<WebDriver>(driver).withTimeout(waitTimeOutInSeconds,   
    TimeUnit.SECONDS).pollingEvery(pollingInterval,   
    TimeUnit.MILLISECONDS).ignoring(NoSuchElementException.class,  
    StaleElementReferenceException.class);

1 个答案:

答案 0 :(得分:1)

这更常见, f开发人员使用任何基于js的操作来验证字段是否正确填充。

您应该尝试输入&#34;标签&#34;做完后的角色&#34; sendKeys&#34;。然后它应该工作。

我正在使用qaf,它具有听众功能,而且我正在做清楚&#34;每当点击发生时,通过监听器获取webelement,这使得实际代码看起来很干净。