Nightwatch .waitForElementVisible('#primary-btn') 警告:WaitForElement 找到 2 个元素



我正在使用带有chrome驱动程序的nightwatch进行UI测试。我在尝试点击网页中的"主要btn"时遇到了一个问题。首先,waitForElement返回一个警告"警告:waitForElement为选择器"#primary btn"找到了2个元素。只会检查第一个",随后的.click('#primary btn')不会产生所需的结果。

我使用document.getElementById('primary-btn')查看了网页,看看是否真的有2个名为"#primary-btn"的元素。然而,函数只列出了一个id为"primary-btn"的元素

我不知道为什么会发生这种事。是否支持守夜等待动画完成。

你应该试试这个

document.querySelectorAll("div[id='primary-btn']:nth-child(1)") 

守夜:

browser.waitForElementPresent("div[id='primary-btn']:nth-child(1)")

这意味着您的页面中有两个具有相同id的元素。虽然标准规定了一个唯一的名称,但在浏览器中没有强制执行。您可以通过在浏览器中执行以下命令进行验证:

document.querySelectorAll("[id='primary-btn']")

或者:

$x("//*[@id='primary-btn']")

因此,为了获得期望的元素,您需要使用另一个条件来扩展选择器。例如:

'#container-id #primary-btn'

最新更新