Selenium显式等待

时间:2017-11-15 03:08:15

标签: selenium-webdriver

任何人都可以让我知道在POM frameowrk中实现显式等待的方式和位置吗?

我的意思是,我应该在哪里实现显式等待代码?在POM类或测试用例类中?

从现在起,我已经在POM类和构造函数体内实现了EW代码行,代码

public RegistrationPage (WebDriver driver)
    {
        PageFactory.initElements(driver, this);
        new WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOf(GenderRadioButton));
    }

这对我来说很好,但不能100%确定这是否是一个正确的地方来实现明确等待,需要对此plz有所了解

--- Ram

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

public RegistrationPage (WebDriver driver, int timeOutSeconds)
{
    driver.manage().timeouts().implicitlyWait(timeOutSeconds, TimeUnit.SECONDS);
    PageFactory.initElements(driver, this);
    new FluentWait<WebDriver>(driver)
            .withTimeout(timeOutSeconds, TimeUnit.SECONDS)
            .pollingEvery(RETRY_TIME, TimeUnit.SECONDS)
            .ignoring(NoSuchElementException.class)
            .until(ExpectedConditions
                    .visibilityOf(By.xpath(xpath)))
   driver.manage().timeouts().implicitlyWait(timeOutSeconds, CLASS_VARIABLE_IMPLICIT_TIMEOUT);
}