gpt4 book ai didi

angularjs - Protractor - 通过子元素过滤时获取父元素的兄弟元素

转载 作者:行者123 更新时间:2023-12-03 15:55:17 25 4
gpt4 key购买 nike

我正在进行 Protractor 测试,其中有多个相同元素类型的标题,但仅在显示的文本上有所不同。要验证这些 header 是否显示,可以使用 xpath 过滤器,例如

element(by.xpath('//div/div/div[@id="headingOne"]/div/h4/a[contains(text(),"Sample")]')

现在有另一个验证,在过滤后的标题中,应该显示一个复选框,并且复选框元素位于标题父级的同级元素中。代码是这样的:

<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>

现在我在验证下一个元素即复选框是否存在时遇到问题。我一直在使用 following-sibling在 xpath 中但没有用,因为它正在获取 <a> 的 sibling 元素。

element(by.xpath('//div/div/div[@id="headingOne"]/div[contains(text(), "Sample")]/following-sibling::div'))

请注意,还有其他元素/ header 具有相同的元素路径,这就是为什么我想通过 div 内的“示例”文本对其进行过滤。

谢谢!

最佳答案

如果将引用 直接子文本节点text() 替换为 .,则您尝试的 XPath 可以工作,这应该返回 上下文节点的全部文本内容:

//div/div/div[@id="headingOne"]/div[contains(., "Sample")]/following-sibling::div

您可能还想在上述 XPath 之后添加 /input[@type="checkbox"] 以确保复选框存在于以下同级 div 中。

关于angularjs - Protractor - 通过子元素过滤时获取父元素的兄弟元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36344846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com