如何从存储的 webelement 变量中检索 xpath?

How to retrieve xpath from stored webelement variable?

我正在尝试为此 'X' 十字标记编写 XPath,如屏幕截图所示,您也可以通过下面的 link 查看它。我尝试了各种路线,但无法获得唯一的 XPath。

如果有人可以提供帮助,我需要它来使用 python selenium 进行自动化测试。

https://observatory.mozilla.org/analyze/www.cricinfo.com?third-party=false

学习如何编写 XPath 表达式会很好,但是在您学习的同时,一种辅助方法是利用浏览器功能为您生成它们。

在您选择该元素的开发人员工具中,右键单击并转到:

copy -> Copy XPath

//*[@id="tests-content-security-policy-pass"]/span/svg/path

copy -> Copy full XPath

/html/body/div/div/div[1]/div[2]/div[3]/div[2]/table/tbody/tr[1]/td[2]/span/svg/path

添加到@Mads Hansen 的精彩解释。 我为步骤添加了一些插图

  1. 右键单击元素并 select 检查 (Google Chrome)/ 检查元素 (Mozilla)。

  2. 右键单击元素

<path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"></path>

  1. Select复制

  2. 单击 return

    的 XPath

//*[@id="tests-content-security-policy-pass"]/span/svg/path

下图应该能更好地说明步骤

您可以使用相关行的测试名称为每个交叉按钮获取唯一的 XPath,例如:

//td[span/a='Content Security Policy']/following-sibling::td[@id='tests-content-security-policy-pass']

在Python中你可以简化为:

xpath_template = "//td[span/a='{}']/following-sibling::td[@id='tests-content-security-policy-pass']"
content_security_xpath = xpath_template.format('Content Security Policy')
cookies_xpath = xpath_template.format('Cookies')