使用Selenium WebDriver等待元素

时间:2016-04-07 16:56:52

标签: selenium selenium-webdriver synchronization

我正在自动化一个基本上有一个按钮的网页,每次按下该按钮都会创建一个新的文本字段。 我正在使用带有PageFactory的FindBy注释来查找文本字段列表。

当我多次按下按钮时出现同步问题,从而创建了几个文本字段,然后尝试写入其中一个。单步执行调试器它可以正常工作,但在调试器之外,FindBy找到所有文本字段之前会有一段延迟。 我当前的解决方法执行睡眠,直到找到所需数量的文本字段,但我发现这非常不令人满意。有关如何最好地完成同步的任何建议吗?

@FindBy(how= How.XPATH, using="//*[contains(@id, 'TextField')]")
private List<WebElement> textFields;
:
:
public void enterText(Integer index, String text){
    int attempts = 0;
    // Check every 10th of a second for 10 seconds if all the textFields have been found 
    while ((textFields.size() <= index) && attempts < 100){
        Thread.sleep(100);
    }

    textFields.get(index).sendKeys("blah blah");

}

0 个答案:

没有答案