Selenium和Xpath-彼此相邻的访问元素

问题描述

在下面的示例中,我尝试单击跟随我,其中相邻<div>等于 David 。这是页面上所有<div class='_1m'都具有相同结构的其中之一(有意义吗?)

很抱歉,第一次发布问题并忘记了一个主要细节。我知道我正在寻找David,但不知道“跟随我”的价值是什么。每条记录都会改变。

<div class="_1m">
  <div class="_8h"><img src="/2323.GIF" /></div>
  <div class="_1j">
    <div class="_1c">David<span class="_13">abc</span></div>
    <div>
      <span class="_1v">ABCD</span>
      <span class="_1v">1234</span>
    </div>
    <div>7890</div>
  </div>
  <div class="_3h">
    <div class="_n0">
      <span class="_bn"><span class="_la">Follow Me</span></span>
    </div>
  </div>
</div>

解决方法

要点击跟随我,其中相邻的<div>包含文本 David ,您可以使用以下Locator Strategy

  • 使用 xpath 以下

    //div[contains(.,'David')]//following::span[3]/span
    
  • 使用 xpath 关注 text 关注我

    //div[contains(.,'David')]//following::span[3]/span[text()='Follow Me']
    
,

在xpath //div[@class='_1c'][contains(.,'David')]/../following-sibling::div//span[@class='_la'][contains(.,'Follow Me')]下使用

说明:

  1. //div[@class='_1c'][contains(.,'David')]偏爱 David
  2. /..移至David的一个父节点,因为关注我是该父div的同级兄弟
  3. /following-sibling::div在同级div之后立即定位
  4. //span[@class='_la'][contains(.,'Follow Me')]找出包含“关注我”文字的范围

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...