Selenium:Pagefactory:如何识别页面中不存在的元素

时间:2017-08-25 14:32:27

标签: java selenium findby page-factory

页面中元素不存在的最佳方式是什么。例如TEST - 当有数据时,这将出现此链接不存在。

如何快速识别这个因为我遇到全局超时?全局等待元素让我长时间在页面上

有什么方法可以轻易识别出来吗?

3 个答案:

答案 0 :(得分:0)

尝试使用findElement找到元素。如果元素不存在,您将收到异常。基于此,您可以决定下一步要做什么。

try {
        WebElement element = driver.findElement(By.id(<element selector string>)
    }
catch(NoSuchElementException nse)
 {}

答案 1 :(得分:0)

假设您不知道是否会有数据,我仍然会使用等待,即使它是一秒或2,只是捕获异常并且不像之前建议的那样

try {
    WebDriverWait wait = new WebDriverWait(driver, 5);
    wait.Until(ExpectedConditions.ElementIsVisible(By.Id("elementId")));

    element = driver.findElement(By.Id("elementId");
} catch (NoSuchElementException | TimeoutException) {}

当然,当你点击页面时,你已经知道链接是否存在,并且不需要等待加载任何内容,然后按照之前的建议捕获异常并对其执行任何操作。

答案 2 :(得分:0)

您可以使用以下函数,它将所有元素存储在列表中,如果大小大于true,则存在元素:

public boolean isElementPresent(By Locator){

List<WebElement> allItems  = driver.findElements(locator);

if (allItems.size() >0){

return true;
}else{

return false

}

}