【问题标题】:Is it possible to get the xpath via link text?是否可以通过链接文本获取 xpath?
【发布时间】:2015-07-29 08:55:38
【问题描述】:

我希望能够通过链接文本定位元素,然后将其 xpath 拉入变量中。这样做的原因是我可以修改 xpath 以单击与第一个相同的表中的不同元素。

我所拥有的是一个添加了行的表,但我无法知道在测试之间添加了多少行。

理想的方法是通过链接文本找到一个元素,然后提取该元素的 xpath,并且我知道该元素在哪一列中,我可以调整 xpath 并单击复选框。

例如如果链接文本元素的 xpath 为

//div[2]/table/tbody/tr/td/div/input

我知道复选框会是

//div[2]/table/tbody/tr/td[4]/div

当通过链接文本定位时,我真正需要确定的是该元素在哪个 //div[?] 中。

表格遵循html结构

<div class="tableRow">
    <table>
      <tbody>
        <tr>
          <td/>
          <td/>
         </tr>
       </tbody>
      </table>
   </div>

【问题讨论】:

  • 在对 html 进行更多挖掘之后,似乎每一行实际上是不同 div 中的不同表。我需要找出linktext元素在哪个div中
  • 也许,你展示了你的 html 结构的片段
  • 为什么这不是解决方案? //div[2]/table/tbody/tr/td/div/input[.=22]/../../../td[4]/div
  • 你能在你的 html 结构中提供一个例子吗?你想找到什么作为链接文本,然后你想检索哪个元素

标签: java html selenium xpath


【解决方案1】:
//div[//input[text()='text to find']]

查找输入等于文本的 div

//div[//input[@href='http://localhost/']]

找到一个带有输入的 div,其链接等于提供的链接

如果找到所有元素并将其放入集合中,则使用 indexOf(或类似逻辑)可以找到行的索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多