我可以 select 一个元素在 nightwatch.js 中的数组位置吗?

Can I select an element by its array position in nightwatch.js?

我希望自动化我的一些测试过程,我对 Nightwatch.js 和 javascript 比较陌生。有没有一种方法可以根据它的 class 单击一个元素并在后续数组中定位,如果有多个元素具有相同的 class.

则将返回该数组

例如采取以下 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')

它returns上面列出的三个元素的数组。

我想单击第一个 <div> 元素并想知道是否可以使用 CSS select 或者?我无法通过出现在 <p> 标签中的文本 select,因为这是动态数据。

我在 Nightwatch 中尝试了以下命令:-

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

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

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

你或许可以使用 :nth-of-type

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

顺便说一句 :nth-of-type 是 CSS3 的一部分,因此旧版浏览器不支持它。

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

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

找到第一个按钮。 Reference