我可以在nightwatch.js中按其数组位置选择一个元素吗?

时间:2015-05-19 15:24:15

标签: javascript arrays nightwatch.js

我希望自动化我的一些测试过程,而且我对Nightwatch.js和javascript相对较新。有没有一种方法可以根据它在后续数组中的类和位置单击一个元素,如果有多个元素具有相同的类,将返回该元素。

例如,请使用以下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]')

这些选项都不起作用。任何帮助或建议将不胜感激。

2 个答案:

答案 0 :(得分:3)

您可以使用:nth-of-type

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

BTW :nth-of-type是CSS3的一部分,因此旧浏览器不支持它。

答案 1 :(得分:2)

除了使用CSS选择器之外,XPath是另一种选择,你可以做到

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

找到第一个按钮。 Reference