无法使用Nightwatch单击模态中的元素

时间:2017-09-15 16:29:07

标签: node.js nightwatch.js

我正在使用Nightwatch编写一些测试,我正处于测试的最后阶段,我有一个问题,我无法弄清楚。我有一个提交内容的按钮,然后当他们点击提交时,会弹出一个模态,询问他们是否确定。我想点击“是的,我确定”但是守夜人没有找到元素。以下是我的代码。

点击提交按钮(这可行)

.getLocationInView('#objective-content-intro > div > div > div > div:nth-child(4) > div > div:nth-child(8) > div > div > a')
.assert.visible('#objective-content-intro > div > div > div > div:nth-child(4) > div > div:nth-child(8) > div > div > a')
.click('#objective-content-intro > div > div > div > div:nth-child(4) > div > div:nth-child(8) > div > div > a')

点击“是的,我确定”按钮(这不起作用)

.getLocationInView('body > div.sweet-alert.hiddenField.showSweetAlert.visible > div.sa-button-container > div > button')
.assert.visible('body > div.sweet-alert.hiddenField.showSweetAlert.visible > div.sa-button-container > div > button')
.waitForElementPresent('body > div.sweet-alert.hiddenField.showSweetAlert.visible > div.sa-button-container > div > button', 3000, 'Click on \"Yes, submit it!\"')
.pause(3000)
.click('body > div.sweet-alert.hiddenField.showSweetAlert.visible > div.sa-button-container > div > button')

我刚收到一条错误消息,说无法找到该元素。

2 个答案:

答案 0 :(得分:1)

试试这个

.waitForElementPresent('#location > of > modal',20000, 'Some message here to show while running test')
.pause(1000)
.execute(function(){
    document.querySelector('body > div.sweet-alert.hiddenField.showSweetAlert.visible > div.sa-button-container > div > button').click()
});

答案 1 :(得分:0)

getLocationInView('body > div.sweet-alert.hiddenField.showSweetAlert.visible > div.sa-button-container > div > button')
.waitForElementPresent('body > div.sweet-alert.hiddenField.showSweetAlert.visible > div.sa-button-container > div > button', 3000,function() {
    this.pause(3000)
    .click('body > div.sweet-alert.hiddenField.showSweetAlert.visible > div.sa-button-container > div > button')
})