量角器:如何访问兄弟元素?

时间:2017-03-01 14:50:28

标签: protractor

Source Elements Screenshot

如何使用div input checkbox点击span data-original-title而不使用xpath?

在@eLRuLL的帮助下:

var keynoteCheckbox = $('[data-original-title="Keynote"]')
  .element(by.xpath('../../preceding-sibling::div'))
  .$('#Checkbox2');
browser.executeScript("$(arguments[0]).click();", keynoteCheckbox);

不得不使用executeScript,因为其上还有另一个元素

2 个答案:

答案 0 :(得分:0)

问题是div元素不是span的兄弟,而是label父元素,请尝试:

by.xpath('../../preceding-sibling::div')

答案 1 :(得分:0)

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

我设计了一个插件来解决此特定问题:protractor-css-booster

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

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

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

您随时可以查看其他可用的便捷方法here ...

希望,它将对您有帮助...