java - 无法定位元素 - Java/Selenium
问题描述
我正在尝试选择下面突出显示的元素(这是一个“窗口关闭”按钮):
页面上还有另一个带有 class='icon-Dismiss' 的元素,但没有带有 class='dialog-close' 的元素。
到目前为止我已经尝试过:
driver.findElement(By.xpath("//*[@class='icon-Dismiss' and @class='dialog-close']"))
driver.findElement(By.className("dialog-close"))
driver.findElement(By.xpath("//*[@id='contentBox']"))
但是,在所有情况下,我都会收到以下错误:
no such element: Unable to locate element
有谁知道我如何选择这个元素?
解决方案
您需要根据需要诱导WebDriverWait,elementToBeClickable()
并且可以使用以下任一Locator Strategies:
cssSelector
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.contentBox div.icon-Dismiss.dialog-close"))).click();
xpath
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@id='contentBox']//div[@class='icon-Dismiss dialog-close']"))).click();
推荐阅读
- neo4j - 安装问题后请选择neo4j中您要存储应用程序数据的路径
- php - 如何使用来自 html 表单的输入安全地更新数据库中的表?
- ios - 分发带有 3rd 方库的 iOS 框架
- python - 交互式绘图条形图
- heroku - 关闭 Heroku Postgres 数据库
- vba - 如何在整个演示文稿ppt vba中更改项目符号颜色
- node.js - aws lambda函数在PC和笔记本电脑之间不刷新
- linux - 在 Windows PowerShell 中使用 grep 命令行来计算 IP 地址
- ruby-on-rails - 如何在 ActiveRecord PostgreSQL 中标记要删除或排除的列?
- javascript - 如何连接我的函数 checkKeyPressed 以更改 javascript 中文本的颜色?