selenium - 如何定位具有属性 xpath="1" 和 xpath="2" 的子节点
问题描述
我正在尝试定位具有两个子节点的 Web 元素:
<div _ngcontent-c2="" class=" " title="Twelve (Start date is 31| 0 user)" xpath="1"></div>
<div _ngcontent-c2="" class=" " title="Twelve (Start date is 31| 0 user)" xpath="2"></div>
我试图//div[contains(@title,'Twelve (Start date is 31| 0 user)')][1]
获得第一个元素,但对我不起作用。
解决方案
xpath="1"
xpath="1"
属性是xpath v1.0的参考
xpath="2"
xpath="2"
属性是xpath v2.0的参考
Selenium仅支持XPath v1.0。
包括父标签在内的更多outerHTML将帮助我们构建更规范的答案。此外,您正在使用的语言绑定的信息也丢失了。但是,要定位第一个元素,您需要为所需的visibilityOfElementLocated()诱导WebDriverWait并且您可以使用以下可以使用以下 xpath:
爪哇:
WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(@title,'Start date is 31') and @xpath='1']")));
蟒蛇:
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(@title,'Start date is 31') and @xpath='1']")))
推荐阅读
- python - 我没有使用 read_html 获得完整的 html 表
- python - python中的cython库有问题
- java - PostMapping Spring boot 注释不起作用
- laravel - Laravel Passport 和移动应用程序
- c - 使用 OpenMP 生成字符串
- c - C中的成分链接列表程序没有输出
- c# - 在 C# 中反序列化 JSON 以进行数组和迭代
- apache-spark - 未找到 AWS EMR psycopg2 模块
- node.js - 如何在客户端显示 GraphQL 模式(邮递员等测试工具)
- docker - localstack docker 给出错误 Permission denied: '/tmp/localstack/server.test.pem.key'