我正在使用带有Chrome驱动程序的夜视仪进行UI测试。在尝试点击网页中的“primary-btn”时遇到了一个问题。首先,waitForElement返回一个警告“警告:WaitForElement找到2个选择器元素”#primary-btn“。只检查第一个元素”,随后的.click('#primary-btn')不会产生所需的结果。
我检查了网页,看看实际上是否有两个名为“#primary-btn”的元素使用document.getElementById('primary-btn')。但是,该函数仅列出了1个带有id'primary-btn'
的元素我不确定为什么会这样。 nightwatch支持等待动画完成。
答案 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'