selenium - 使用父级和兄弟级的 WebTable 的 Selenium XPath
问题描述
我正在尝试自动化 demoqa 网站https://demoqa.com/webtables上的 web 表格,我的目标是单击特定用户的编辑和删除按钮。请找到随附的屏幕截图以供参考。
我正在尝试单击用户“Cierra”的编辑和删除按钮,因此我创建了自定义 XPath '//div[contains(text(),'cierra@example.com')]//following::div[ text()='保险']//following::div//div//span[@title='编辑']'
尝试使用包含电子邮件“cierra@example.com”的包含文本单击编辑和删除按钮,但是即使我使用唯一的用户名,我也会看到四个结果。谁能帮我解决这个问题?
解决方案
(//div[contains(text(),'cierra@example.com')]//following::div[text()='Insurance']//following::div//div//span[@title='Edit'])[1]
您可以将结果括在括号中并调用 [1] ,以获得第一个:
但是您不必过于复杂化,只需获取电子邮件然后返回父级并在该父级下获得跨度,:
//div[contains(text(),'cierra@example.com')]/..//span[@title="Edit"]
如果您仍想使用花哨的 xpath 定位器,请使用:
//div[contains(text(),'cierra@example.com')]/following-sibling::div[contains(text(),'Insurance')]/following-sibling::div//span[@title='Edit']
推荐阅读
- c++ - 由于模数运算符导致的编译代码问题
- javascript - 使用 where 子句 firestore 搜索时获取文档 ID
- node.js - Geojson 的 Mongoose 子文档
- ansible - 使用 ansible 角色和默认值启动服务
- c# - 如何将一个空游戏对象统一锚定在可拉伸图像内
- xml - 将图像注释 XML 文件转换为 TXT 文件
- javascript - 滚动到 id 时添加填充 -100px
- mysql - 使用 match 比较 2 个表
- python - 如何比较两个列表并在一个列表中打印差异
- python-3.x - datalab 导入错误:无法导入名称“视觉”