我怎样才能得到这个 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 以确保它是唯一的。

在 Chrome 中按 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的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能得到这个界面?

颤振谷歌地图。展现风格。我怎样才能得到这个工作?

我怎样才能在这个程序中得到正确的输出?

我怎样才能从我的项目中得到这个警告?

我怎样才能确保我从这个回归生成器中得到正确的结果?

GeoDjango:我怎样才能得到两点之间的距离?