我怎样才能得到这个 Xpath
Posted
技术标签:
【中文标题】我怎样才能得到这个 Xpath【英文标题】:How Can i get this Xpath 【发布时间】:2022-01-06 07:53:37 【问题描述】:我得到了用于捕获的 id。
//button[contains(text(),'Delete')][1]
//button[@id='deletebtn']
但它有 10 个重复值。无法识别唯一的东西来捕获元素。请帮我解决
【问题讨论】:
它们必须在不同的<td>
,所以使用<td>
属性
没有html代码很难帮你...
嗨 Frenchy 我添加了完整的 HTML 代码
【参考方案1】:
由于您尚未共享完整的 HTML,我假设您希望使用 10 个匹配项的第一个定位器。
你可以使用
//(button[contains(text(),'Delete')])[1]
而不是
//button[contains(text(),'Delete')][1]
以防万一,假设您想使用另一个元素,然后更改匹配号。如下所示,
//(button[contains(text(),'Delete')])[3]
或
//(button[contains(text(),'Delete')])[4]
注意:如果有多个匹配项,Selenium
默认选择第一个元素。
始终在 chrome 控制台中检查您的 xPath
以确保它是唯一的。
F12
。
转到elements
部分
搜索 (CTRL + F
)
放置xpath
,看看你想要的element
是否与1/1
匹配节点突出显示。这意味着,您的 xPath
是独一无二的。
【讨论】:
我试过你提到的代码。它是正确的,但不幸的是它不适用于我的代码。它唯一捕获 [1] 但我想捕获第 10 行。当我给 //(button[contains(text(),'Delete')])[10] 它不起作用 您遇到什么错误?您是否在 chrome 控制台中测试过定位器? 然后使用//(button[contains(text(),'Delete')])[10]
kendo.all.js:2178 未知数据源传输类型“GET”。无法加载源地图:无法加载内容
我用过 //(button[contains(text(),'Delete')])[10] 但它不起作用。上面的评论提到了错误。【参考方案2】:
您在编写基于索引的 xpath 时使用了错误的语法。
基于索引的 XPath 的正确语法-
(//button[contains(text(),'Delete')])[10]
PS:您可以在 SelectorsHub 中验证您的 xpath 是否正确。
【讨论】:
以上是关于我怎样才能得到这个 Xpath的主要内容,如果未能解决你的问题,请参考以下文章