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

时间:2016-05-12 17:32:28

标签: selenium selenium-chromedriver nightwatch.js

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

我检查了网页,看看实际上是否有两个名为“#primary-btn”的元素使用document.getElementById('primary-btn')。但是,该函数仅列出了1个带有id'primary-btn'

的元素

我不确定为什么会这样。 nightwatch支持等待动画完成。

2 个答案:

答案 0 :(得分:1)

你应该试试这个

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

在守夜人:

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

答案 1 :(得分:0)

这意味着您的页面中有2个元素具有相同的ID。虽然标准强加了一个唯一的名称,但它不会在浏览器中强制执行。您可以在浏览器中执行以下命令来验证它:

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

或者:

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

因此,要获得预期的元素,需要使用其他条件扩展选择器。例如:

'#container-id #primary-btn'