【问题标题】:How to locate a parent element which contains another element如何定位包含另一个元素的父元素
【发布时间】:2011-01-18 11:08:54
【问题描述】:

例如:

我有以下结构:

<td>  
  <a>  
  <input id="MyID1">  
</td>

<td>  
  <a>  
  <input id="MyID2">  
</td>  

<td>  
</td>  

我们建议&lt;a&gt; 没有任何特定属性可以通过它们来定位。

所以 2 个问题:

  1. 我需要在第二个 td 中找到 &lt;a&gt;。我知道我正在寻找的&lt;a&gt; 与“MyID2”输入放置在同一个 td 中。我该怎么做?

  2. 我需要找到第三个 td(空)。我知道我正在寻找的 td 是以下 td for td,其中包含“MyID2”输入。我该怎么做?

谢谢!

【问题讨论】:

    标签: java automated-tests selenium-rc


    【解决方案1】:

    如果您可以在某处使用 XPath,则以下表达式将在第二个 &lt;td&gt; 中找到 &lt;a&gt; 元素:

    //td/a[../input/@id='MyID2']

    它将查找所有&lt;a&gt; 元素,它们是&lt;td&gt; 元素的直接子元素,该元素在同一级别上具有&lt;input&gt; 元素,其id 属性等于“MyID2”。

    【讨论】:

    • 已经有一段时间了,但我不相信 XPath 可以处理格式不正确的结构化文本。这是对类似问题的参考:stackoverflow.com/questions/354322/…
    • 所有浏览器都将非格式良好的 HTML 代码转换为“可浏览”的格式良好的 DOM 模型。例如。 JavaScript XPath 库使用此模型来允许 XPath 查询来搜索和访问 HTML 元素。我对 Selenium 不太熟悉,但我认为 Selenium 以类似的方式工作。因此我的“如果你可以使用 XPath”介绍。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 2017-08-04
    • 1970-01-01
    相关资源
    最近更新 更多