是否有可能在 Protractor 中使用 cssContainingText 获取下一个兄弟姐妹
Is it possible to get next sibling using cssContainingText in Protractor
是否可以使用 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
找到兄弟姐妹的方法。但是,这对我来说不起作用!
我认为 'chaining' 可以用来实现这个,但不知道怎么做!
谢谢,
萨克什
您可以使用 node.nextSibling 选择器。看看这个 article
如果您使用 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'))
使用 Xpath 选择器不是更好的选择,因为它会减慢元素查找机制。
我设计了一个插件来解决这个具体问题:protractor-css-booster
该插件提供了一些方便的定位器,可以更好地找到兄弟姐妹,最重要的是使用 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'));
希望对你有所帮助...
是否可以使用 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
找到兄弟姐妹的方法。但是,这对我来说不起作用!
我认为 'chaining' 可以用来实现这个,但不知道怎么做!
谢谢, 萨克什
您可以使用 node.nextSibling 选择器。看看这个 article
如果您使用 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'))
使用 Xpath 选择器不是更好的选择,因为它会减慢元素查找机制。
我设计了一个插件来解决这个具体问题:protractor-css-booster
该插件提供了一些方便的定位器,可以更好地找到兄弟姐妹,最重要的是使用 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'));
希望对你有所帮助...