【问题标题】:Find element with xpath in c# selenium webdriver在 c# selenium webdriver 中使用 xpath 查找元素
【发布时间】:2016-12-14 21:26:41
【问题描述】:

我的源代码中有这个元素,我得到了带有内部文本的 h2 元素(雅虎),我想访问最近的包含 h2 的文章。

<article>
 <div></div>
 <div></div>
 <header>
   <a></a>
   <a>
     <h2>yahoo</h2>
  </a>
 </header>
</article>

我写的 XPath 是这样的://h2[text()='yahoo']//..//.. 但它不起作用。

【问题讨论】:

  • 你能分享你的c#代码吗?我想知道你是如何使用它的?
  • 当您说访问最近的包含 h2 的文章时,您能解释一下您的期望吗?

标签: c# selenium xpath selenium-webdriver


【解决方案1】:

这个 xpath 怎么样:

//h2[. = 'yahoo']/ancestor::article[1]

【讨论】:

  • 我有 2 篇具有此功能的文章,第一篇文章 h2 文本是 google,第二篇文章 h2 文本是 yahoo,当 yahoo 在第一篇文章中时这才有效。
  • @user3796324 我不太明白。您能否编辑您的帖子并向我们展示您真正想要的内容。
  • 这将是构造这个 XPath 选择器的正确方法。现在,如果只有 OP 可以阐明他们真正想要的东西,因为似乎这个答案还不够。 (根据所写的问题,这完美地回答了它)
【解决方案2】:

获取包含&lt;h2&gt; 元素的&lt;article&gt; 元素的一种可能XPath 等于yahoo

//article[.//h2='yahoo']

【讨论】:

    【解决方案3】:

    如果您想与文章互动,请使用下一个字符串:

    //article[header//h2[text='yahoo']]
    

    【讨论】:

      【解决方案4】:

      请使用此 xpath 并尝试://h2[text()='yahoo']//..//..//..

      解释:

      第一个//.. 将带你到anchor(a) 标签。

      第二个//.. 带你到标题标签。

      3rd //.. 会带你去你想去的地方,即文章标签。

      【讨论】:

      • 你确定吗?我认为这个 xpath 将不仅仅选择 article 元素。
      • S.它将选择文章元素。用户的任务是选择第一个具有h2 标签的article 标签吗?
      • 在我看来,它会选择h2,它是父a,它是父header,它是父article
      猜你喜欢
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多