我写了一段代码,发现结果元素可见或不可见,但我收到了一个异常。
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":".//*[@class='airbnb-wide-block-search-btn js-airbnb-search-btn']"}
这是我的代码
wd.navigate().refresh();
Thread.sleep(7000);
boolean airbnb = wd.findElement(By.xpath(".//*[@class='airbnb-wide-block-search-btn js-airbnb-search-btn']")).isDisplayed();
assertFalse(airbnb, "Airbnb Add will not show After clicking Add one times");
对于为什么找不到元素显示有什么建议吗?如果找不到元素,那么它应该是 false
我不确定我哪里弄错了?
最佳答案
为避免异常和昂贵的 try - catch
使用,您可以使用 findElements
定位元素。如果结果列表不为空,您可以检查是否显示存在的元素
List<WebElement> elements = wd.findElements(By.xpath(".//*[@class='airbnb-wide-block-search-btn js-airbnb-search-btn']"));
assertFalse(elements.size() > 0 && elements.get(0).isDisplayed(), "Airbnb Add will not show After clicking Add one times");
关于java - Selenium- 异常而不是 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46169585/