Protractor - 通过 child 元素过滤时获取 parent 元素的兄弟元素
Protractor - get the sibling element of the parent element when filtered via child element
我正在进行量角器测试,其中有多个 header 元素类型相同,但仅在显示的文本上有所不同。要验证这些 header 是否显示,可以使用 xpath 过滤器,例如
element(by.xpath('//div/div/div[@id="headingOne"]/div/h4/a[contains(text(),"Sample")]')
现在有另一个验证,在过滤后的 header 中,应该显示一个复选框,并且该复选框元素位于 header 的 parent 的兄弟元素中。代码如下:
<div class="panel-heading" role="tab" id="headingOne">
<div class="inline">
<h4 class="panel-title">
<a>Sample</a>
</h4>
</div>
<div class="inline-right">
<input type="checkbox" class="">
</div>
</div>
现在我在验证下一个元素即复选框是否存在时遇到问题。我一直在 xpath 中使用 following-sibling
但没有用,因为它正在获取 <a>
元素的兄弟。
element(by.xpath('//div/div/div[@id="headingOne"]/div[contains(text(), "Sample")]/following-sibling::div'))
请注意,还有其他 elements/header 具有相同的元素路径,这就是为什么我想通过 div 内的 'Sample' 文本对其进行过滤的原因。
谢谢!
如果将引用 直接子文本节点 的 text()
替换为 .
应该 return 上下文节点的完整文本内容 :
//div/div/div[@id="headingOne"]/div[contains(., "Sample")]/following-sibling::div
您可能还想在上述 XPath 之后添加 /input[@type="checkbox"]
以确保复选框存在于以下同级 div
.
我正在进行量角器测试,其中有多个 header 元素类型相同,但仅在显示的文本上有所不同。要验证这些 header 是否显示,可以使用 xpath 过滤器,例如
element(by.xpath('//div/div/div[@id="headingOne"]/div/h4/a[contains(text(),"Sample")]')
现在有另一个验证,在过滤后的 header 中,应该显示一个复选框,并且该复选框元素位于 header 的 parent 的兄弟元素中。代码如下:
<div class="panel-heading" role="tab" id="headingOne">
<div class="inline">
<h4 class="panel-title">
<a>Sample</a>
</h4>
</div>
<div class="inline-right">
<input type="checkbox" class="">
</div>
</div>
现在我在验证下一个元素即复选框是否存在时遇到问题。我一直在 xpath 中使用 following-sibling
但没有用,因为它正在获取 <a>
元素的兄弟。
element(by.xpath('//div/div/div[@id="headingOne"]/div[contains(text(), "Sample")]/following-sibling::div'))
请注意,还有其他 elements/header 具有相同的元素路径,这就是为什么我想通过 div 内的 'Sample' 文本对其进行过滤的原因。
谢谢!
如果将引用 直接子文本节点 的 text()
替换为 .
应该 return 上下文节点的完整文本内容 :
//div/div/div[@id="headingOne"]/div[contains(., "Sample")]/following-sibling::div
您可能还想在上述 XPath 之后添加 /input[@type="checkbox"]
以确保复选框存在于以下同级 div
.