2014-09-29 48 views
1

下面是源代碼,兩個按鈕:如何查找按鈕

<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的情況下處理這些類型的元素?

回答

1

爲什麼不呢?

element(by.css('button[data-clear]')).click(); 
+0

有什麼方法可以指定'data-clear'屬性的值。我希望將它作爲'element(by.css('button [data-clear = 1]'))。click();'。所以,如果兩個webelements具有相同的屬性,那麼我可以通過指定相同屬性的值來使css唯一。 – 2014-10-09 06:41:57

+0

我相信你在那裏寫的應該很好。 – 2014-10-09 17:29:22

+0

是我上面寫的作品 – 2014-10-10 04:49:24

2

你應該能夠抓住部分按鈕上的文字,正是如此...

element(by.partialButtonText('Close')).click(); 

還是讓所有的按鈕和使用索引,點擊二日一...

$$('.picker__button--clear').get(1).click(); 

你根本不需要使用XPath。

0

如果有重複,你不得不提及按鈕的位置。

語法:driver.(byxpath("(//*['id=xxxxx'][position()=2]")).click();

+0

謝謝美元,但我已經在我的問題中提到我根本不想使用xpath。 – 2014-09-30 07:31:04

0

另一種方式。

element.all(by.css('.picker__button--clear')).last()