child 和 parent 的 XPATH 测试字符串值具有空字符串值
XPATH Testing string value of child and parent has empty string value
我在 Selenium 测试中搜索 html,我想通过它的文本 找到 child 只有当 parent 没有文字:
这是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>
选择文本字符串“630”会使用“//span[.='630']”或“//span[text()='630']”产生三个结果,但我只想要那个中间一个空 parent。我已经尝试了很多不起作用的构造 "//span[.='630' and parent::div[.='']]"
或 "//span[text()='630' and parent::div[text='']]"
甚至 "//div[text()='']/*[1] | //span[text()='630']"
但这些都会导致 3 个结果或 none.
请注意,虽然 "//span[text()='630'] and .//div[contains(text(),'')]"
检测到 文本,但它 return 是真的,我需要它 return 元素以便我可以点击它。
这对我有用:
//div[@innertext='']/span[text()='630']
//span[text()='630']/parent::div[not(text())]
试试这个。
我在 Selenium 测试中搜索 html,我想通过它的文本 找到 child 只有当 parent 没有文字:
这是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>
选择文本字符串“630”会使用“//span[.='630']”或“//span[text()='630']”产生三个结果,但我只想要那个中间一个空 parent。我已经尝试了很多不起作用的构造 "//span[.='630' and parent::div[.='']]"
或 "//span[text()='630' and parent::div[text='']]"
甚至 "//div[text()='']/*[1] | //span[text()='630']"
但这些都会导致 3 个结果或 none.
请注意,虽然 "//span[text()='630'] and .//div[contains(text(),'')]"
检测到 文本,但它 return 是真的,我需要它 return 元素以便我可以点击它。
这对我有用:
//div[@innertext='']/span[text()='630']
//span[text()='630']/parent::div[not(text())]
试试这个。