【问题标题】:Selenium XPath for WebTable using parent & sibling使用父级和兄弟级的 WebTable 的 Selenium XPath
【发布时间】:2021-04-21 04:36:29
【问题描述】:
我正在尝试自动化 demoqa 网站https://demoqa.com/webtables 上的网络表格,我的目标是单击特定用户的编辑和删除按钮。请找到随附的屏幕截图以供参考。
Screenshot
我正在尝试单击用户“Cierra”的编辑和删除按钮,因此我创建了自定义 XPath '//div[contains(text(),'cierra@example.com')]//以下: :div[text()='Insurance']//following::div//div//span[@title='Edit']'
尝试使用电子邮件“cierra@example.com”的包含文本单击编辑和删除按钮,但是即使我使用唯一的用户名,我也会看到四个结果。谁能帮我解决这个问题?
【问题讨论】:
标签:
selenium
selenium-webdriver
xpath
【解决方案1】:
(//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']