我正在使用带有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'