0

我有我在 Selenium 测试中搜索的 html,只有在父级没有文本的情况下,我才想通过其文本找到子级:

这是HTML:

    <ul>
     <li>
      <div>
      "4"
       <span>630</span>
      </div>
    </li>
    <li>
     <div>

       <span>630</span>
     </div>
    </li>
    <li>
     <div>
     "6"
      <span>630</span>
     </div>
    </li>
   </ul>

使用“//span[.='630']”或“//span[text()='630']”选择文本字符串'630'会产生三个结果,但我只想要中间一个空的父母。我已经尝试了很多不起作用的结构,甚至"//span[.='630' and parent::div[.='']]"这些结构都导致 3 个结果或没有结果。"//span[text()='630' and parent::div[text='']]""//div[text()='']/*[1] | //span[text()='630']"

请注意,当"//span[text()='630'] and .//div[contains(text(),'')]" 检测到文本时,它会返回 true,我需要它来返回元素以便我可以单击它。

4

2 回答 2

1
//span[text()='630']/parent::div[not(text())]

尝试这个。

于 2020-02-27T00:18:25.273 回答
0

这对我有用:

//div[@innertext='']/span[text()='630']
于 2020-02-27T00:07:43.760 回答