是否可以通过使用by.cssContainingText()
来获得下一个兄弟实施例: 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
答案 0 :(得分:9)
如果您使用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'))
答案 1 :(得分:0)
您可以使用node.nextSibling选择器。看看这个article
答案 2 :(得分:0)
使用Xpath选择器不是一个更好的选择,因为它会减慢元素查找机制的速度。
我设计了一个插件来解决此特定问题:protractor-css-booster
该插件提供了一些方便的定位器,可以更好地找到同级,最重要的是使用CSS选择器。
使用此插件,您可以直接使用:
var elem = element(by.cssContainingText('div.text-label','SomeText')).element(by.followingSibling('div'));
希望,它将对您有帮助...