我正在使用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值?
答案 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']"));
类型。