0

WebDriver API说用于findElements检查. WebElement此方法受隐式超时值的约束。因此,如果我想编写一个方法来检查是否存在,并且我不希望该方法等待隐式超时,我可以像这样暂时抑制它:

protected boolean doesElementExist(By by) {
    // Temporarily set the implicit timeout to zero
    driver.manage().timeouts().implicitlyWait(0, TimeUnit.MILLISECONDS);
    // Check to see if there are any elements in the found list
    boolean exists = driver.findElements(by).size() > 0;
    // Return to the original implicit timeout value
    driver.manage().timeouts()
            .implicitlyWait(Properties.TIMEOUT_TEST, TimeUnit.SECONDS);
    return exists;
}

但这需要您WebDriver管理超时值。我目前正在将上述方法移动到By调用的自定义子类中,Locator以便我可以从驱动程序或特定的调用这些方法WebElement,并且还可以扩展Locator正则表达式匹配和其他形式的信息检索。

问题是在我的Locator课堂上,我没有WebDriver,我有SearchContext。我想应该有一种方法可以findElementsWebElement. 有没有这样的方法?或者我是否必须在我的自定义WebDriverWebElement实现中抑制这些方法的实现中的超时值(为了使这些新方法可供他们使用,它们也已扩展)?谢谢!

4

0 回答 0