如何使用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
,因为其上还有另一个元素
答案 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 ...
希望,它将对您有帮助...