是否可以在Protractor中使用cssContainingText获取下一个同级

Is it possible to get next sibling using cssContainingText in Protractor

本文关键字:获取 cssContainingText 下一个 Protractor 是否      更新时间:2023-12-03

是否可以使用by.csContainingText()获取下一个同级

示例:HTML代码如下:

<div ng-repeat="SomeNgRepeat" class="ng-scope">
    <div class="text-label" >SomeText</div>
    <div class="some-class">SomeValue</div>
</div>

使用获取元素

element(by.cssContainingText('div.text-label','SomeText'))

现在找到上面元素的下一个同级元素。

我知道css=form input.username + input找到兄弟姐妹的方法。然而,这对我来说不起作用!

我认为"链接"可以用来实现这一点,但不知道如何实现!

谢谢,Sakshi

如果你想使用by.xpath():一次搞定呢

element(by.xpath('//div[@class="text-label" and . = "SomeText"]/following-sibling::div'))

或者,您可以将其与cssContainingText():组合使用

element(by.cssContainingText('div.text-label','SomeText')).element(by.xpath('following-sibling::div'))

您可以使用node.nextSibling选择器。查看本文

使用Xpath选择器不是更好的选择,因为它会减慢元素查找机制。

我设计了一个插件来解决这个特定的问题:量角器css助推器

该插件提供了一些可处理的定位器,以更好的方式查找同级,最重要的是使用CSS选择器。

使用此插件,您可以直接使用:

var elem = await element(by.cssContainingText('div.text-label','SomeText')).nextSibling();

或者,通过定位器使用助推器

var elem = element(by.cssContainingText('div.text-label','SomeText')).element(by.followingSibling('div'));

希望它能帮助你。。。