【发布时间】:2020-12-21 11:56:24
【问题描述】:
我有一个列表项的无序列表,其中包含动态生成的标签元素和值。我正在尝试验证该列表是否包含具有特定值的特定标签。
我正在尝试编写一个 xpath,它允许我使用量角器的元素(by.xpath)找到包含已定义标签和值的父元素。给定一个列表,我需要能够通过特定属性的两个后代的组合找到任何单个 li。例如,一个 li 元素包含 class=label 和 text=Color 的任何后代以及 text=Blue 的任何后代。
<ul>
<li>
<span class='label'> Car </span>
<p> Ford </p>
</li>
<li>
<span class='label'> Color </span>
<p> <span>My favorite color is</span> : <webl>Blue</webl></p>
</li>
<li>
<span class='label'> Name </span>
<p> Meri </p>
</li>
<li>
<span class='label'> Pet </span>
<p> Cats <span>make the best pets</span> </p>
</li>
我尝试了以下模式的几种变体:
//li[.//*[@class="label" | contains(text(), 'Color')] | .//*[contains(text(), 'Blue')]
这是我认为我来过的最接近的,并且它作为无效的 xpath 回来了。几个小时以来,我一直在查看参考资料、备忘单和 SO 问题,但我并没有更接近于理解我做错了什么。最终我需要用变量替换文本,但现在我只需要弄清楚这一点。
a list item that contains, at any depth,
any tag with a class of 'label' and text of x
AND
any tag with text y
谁能告诉我我做错了什么?我是不是让它太复杂了?
【问题讨论】:
标签: html xpath protractor