2015-05-19 66 views
5

我期待自動化我的一些測試流程,並且我對Nightwatch.js和javascript比較新。有沒有一種方法可以根據它的類和後續數組中的位置單擊一個元素,如果有多個具有相同類的元素,將返回該元素。我可以通過在nightwatch.js中的數組位置選擇一個元素嗎?

例如採取下列HTML: -

<div class="clickable-button"><p>Some Text</p></div> 
<div class="clickable-button"><p>Some Text 2</p></div> 
<div class="clickable-button"><p>Some Text 3</P></div> 

如果我使用Chrome的開發工具,並在控制檯中運行以下命令: -

$('.clickable-button') 

它返回三個元素的數組以上所列。

我想單擊第一個<div>元素,並想知道是否有一種方法可以使用CSS選擇器來做到這一點?我無法通過<p>標籤中顯示的文字進行選擇,因爲這是動態數據。

我在Nightwatch嘗試下面的命令: -

browser.click('.clickable-button'[0]) 

browser.click('clickable-button[0]') 

這兩種方法都不工作。任何幫助或建議,將不勝感激。

回答

4

你很可能:nth-of-type

browser.click('.clickable-button:nth-of-type(1)'); 

BTW :nth-of-type是CSS3的一部分,所以它不被舊版本瀏覽器的支持。

+0

這不起作用。 – Michal

1

除了使用CSS選擇器,XPath是另一種選擇,你可以做

browser .useXpath() //ignore this line if you already selected xpath as strategy .click('(//div[@class="clickable-button"])[1]')

找到的第一個按鈕。 Reference

相關問題