【问题标题】:Can I select an element by its array position in nightwatch.js?我可以通过 nightwatch.js 中的数组位置选择一个元素吗?
【发布时间】:2016-06-07 23:45:49
【问题描述】:

我希望自动化我的一些测试过程,而且我对 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')

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

我想点击第一个 &lt;div&gt; 元素,并想知道是否有办法使用 CSS 选择器来做到这一点?我无法通过出现在 &lt;p&gt; 标记中的文本进行选择,因为这是动态数据。

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

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

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

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

【问题讨论】:

    标签: javascript arrays nightwatch.js


    【解决方案1】:

    你可能会使用:nth-of-type

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

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

    【讨论】:

      【解决方案2】:

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

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

      找到第一个按钮。 Reference

      【讨论】:

        猜你喜欢
        • 2012-06-12
        • 2019-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        相关资源
        最近更新 更多