使ExpectedConditions.invisibilityOfElementLocated停止抛出错误并返回false / true值

时间:2015-12-21 21:38:03

标签: java selenium selenium-webdriver

我正在使用Selenium和Java来编写测试。我使用下面的代码来查看一个元素是否不可见,我希望它在可见时返回false,当它不可见时返回true:

  boolean b = wait.until(ExpectedConditions.invisibilityOfElementLocated
(By.xpath("//div[@class='bla bla']")));

但是当元素可见时它会抛出Timed out after 2 seconds waiting for element to no longer be visible,如何让ExpectedConditions.invisibilityOfElementLocated停止抛出错误并返回false / true值?

1 个答案:

答案 0 :(得分:0)

为此目的,最好使用isDisplayed方法。

kernel.Get

并确保使用正确的选择器。不要混淆css选择器和xpath。

如果你真的想忽略异常并使用invisibilityOfElementLocated方法试试:

WebElement element = driver.findElement(By.cssSelector("div[class='bla bla']"));
Boolean displayed = element.isDisplayed();
System.out.print(displayed);

注意:您可以放置​​任何您想忽略的异常,而不是Wait<WebDriver> wait = new FluentWait<>(driver) .withTimeout(60, TimeUnit.SECONDS) .pollingEvery(5, TimeUnit.SECONDS) .ignoring(NoSuchElementException.class); wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector("div[class='bla bla']")); 类型。