使用python的selenium Xpath查找器-自动化

使用python的selenium Xpath查找器-自动化,selenium,selenium-webdriver,xpath,webdriver,xpath-1.0,Selenium,Selenium Webdriver,Xpath,Webdriver,Xpath 1.0,我正在尝试为下面的元素找到一个唯一的xpath,请建议是否有更好的xpath用于一般文本,正如我目前为该特定名称提供的那样 <td tabindex="4" style="text-align: left;" title="name" class="">Name</td> 我正在使用的xpath://td[@title='name'] 在这里,如果名称被代码中的其他内容更改,这将不起作用,是否有人可以帮助我识别唯一的xpath,它通常适用于任何文本。谢谢 您可以使用和/

我正在尝试为下面的元素找到一个唯一的xpath,请建议是否有更好的xpath用于一般文本,正如我目前为该特定名称提供的那样

<td tabindex="4" style="text-align: left;" title="name" class="">Name</td>
我正在使用的xpath://td[@title='name']

在这里,如果名称被代码中的其他内容更改,这将不起作用,是否有人可以帮助我识别唯一的xpath,它通常适用于任何文本。谢谢

您可以使用和/或元素的多个属性进行连接,以精确查找元素

By.xpath("//td[@title= 'name' and contains(text(), 'Name')]")
但是,我们需要查看代码的更多细节和页面的DOM以查找元素。
在类似页面的表名中总会有一些元素永远不会改变,使用它作为相对点,我们可以参考表中的行。

找到任何元素的XPath的最简单方法是转到开发人员选项并选择要使用XPath的元素的标记

右键单击->复制->XPath

我相信这是最简单的方法。你也会发现你做错了什么

附上截图供您参考


我使用了一般语法-//td[text='{}',并在定义方法时传递name参数,这样它就不会特定于某个方法,其他人可以使用相同的定位器进行测试,当其他人使用testcase时,他们的名称会发生变化


谢谢大家的回复

在回答之前,我们需要查看元素和DOM的更多细节。您是否担心title属性可能会更改?这就是测试的本质——任何web元素属性都可以更改,甚至ID也可以更改,ID是首选的定位器(如果存在),而在DOM示例中,它不是。虽然文本本身可能会更改,但属性标题更改的可能性较小,因此您当前的xpath与本例中的xpath一样不脆弱。@BillHileman是正确的。如果您有权编辑源代码,则可以添加id属性并按id查找。