java - Selenium- 异常而不是 boolean 值

标签 java selenium selenium-webdriver

我写了一段代码,发现结果元素可见或不可见,但我收到了一个异常。

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/

相关文章:

java - 使用jmockit模拟扩展类的抽象方法

Java Google App Engine 任务队列卡住/停止

java - 编写用于连接服务器的桌面应用程序

java - 用于许多测试的 geckodriver - Java

java - 为屏幕截图创建动态文件名 Selenium Webdriver

Selenium:Chrome驱动程序使屏幕截图仅显示页面的可见部分

java - 如何获取用户输入的数量?

python - 使用 Selenium for Python 添加评论到 Instagram

python-3.x - 如何通过 Selenium 和 Python 在 HTML DOM 中渲染元素之前与其进行交互

java - 在 debian 8 上使用 chromedriver 启动 Selenium 后出错