如何找到一个按钮

时间:2014-09-29 09:24:41

标签: selenium-webdriver protractor

以下是两个按钮的源代码:

 <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可以处理这些类型的元素吗?

4 个答案:

答案 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()