以下是两个按钮的源代码:
<div class="picker__footer">
<button class="picker__button--clear" type="button" data-pick="1411929000000" aria-controls="start-date"> :: before "Today" </button>
<button class="picker__button--clear" type="button" data-clear="1" aria-controls="start-date"> :: before "Close" </button>
</div>
我想在不使用Xpath的情况下单击第二个按钮,实际上我只想使用这些定位器中的任何一个(http://angular.github.io/protractor/#/api?view=ProtractorBy)。在量角器中没有Xpath可以处理这些类型的元素吗?
答案 0 :(得分:2)
你应该能够抓住部分按钮文本,因此......
element(by.partialButtonText('Close')).click();
或者获取所有按钮并使用索引,单击第二个...
$$('.picker__button--clear').get(1).click();
您根本不需要使用XPath。
答案 1 :(得分:1)
为什么不呢?
element(by.css('button[data-clear]')).click();
答案 2 :(得分:0)
如果有重复项,你必须提到按钮的位置。
语法:driver.(byxpath("(//*['id=xxxxx'][position()=2]")).click();
答案 3 :(得分:0)
还有一种方法。
element.all(by.css('.picker__button--clear')).last()