【问题标题】:How Can i get this Xpath我怎样才能得到这个 Xpath
【发布时间】:2022-01-06 07:53:37
【问题描述】:

我得到了用于捕获的 id。

//button[contains(text(),'Delete')][1] 

//button[@id='deletebtn']

但它有 10 个重复值。无法识别唯一的东西来捕获元素。请帮我解决

【问题讨论】:

  • 它们必须在不同的<td>,所以使用<td>属性
  • 没有html代码很难帮你...
  • 嗨 Frenchy 我添加了完整的 HTML 代码

标签: c# selenium cucumber bdd


【解决方案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 是否正确。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多