nightwatch - 在每次点击事件后检查弹出窗口 window
nightwatch - check for popup window, after each click event
nightwatch 中有没有办法检查每次点击事件后是否出现弹出 window?
我有一个问题,运行通常会出现一条错误消息,我不想为每个点击事件编写相同的回调函数。
我已经在 Global.js 中尝试了 after
和 afterEach
命令,但是在整个测试套件之后这些命令只会 运行。
我也在测试文件中本地尝试过,尽管它也没有涵盖所有单击事件,即使官方网站写道“......而beforeEach
和afterEach
是运行 每个测试用例(测试步骤)之前和之后"?
我正在寻找的解决方案:
.waitForElementVisible('selector')
.click('selector')
.click('selector')
到目前为止我想出的解决方案:
.waitForElementVisible('selector')
.click('selector', isPresent)
.click('selector', isPresent)
isPresent
作为回调函数,它会检查并关闭弹出 window 如果它出现。
有没有其他方法可以写一个函数(带或不带after
and/or forEach
),以便在每次点击事件或每个命令后调用。因此,我不必编写 isPresent
重复代码?
你应该使用 .switchWindow() 方法。
为什么不针对这种情况编写自己的自定义命令,这样就可以避免重复代码?
您可以在页面对象文件中插入类似这样的内容:
var popupCommand = {
popupCheck:function(){
return this.waitForElementVisible('selector', 5000)
.click('selector', isPresent)
.click('selector', isPresent)
},
module.exports = {
commands:[popupCommand],
elements:{
firstElement: {selector: 'xpath',locateStrategy: 'xpath'},
secondElement: {selector: 'css'},
}
}
其中 'popupCommand' 将是您的页面对象文件的名称,例如 'Popup'。而且您还必须在此处插入您的 isPresent 回调函数,以便您可以使用它。
我已尽力向您尽可能多地解释该做什么以及如何做:)
nightwatch 中有没有办法检查每次点击事件后是否出现弹出 window?
我有一个问题,运行通常会出现一条错误消息,我不想为每个点击事件编写相同的回调函数。
我已经在 Global.js 中尝试了 after
和 afterEach
命令,但是在整个测试套件之后这些命令只会 运行。
我也在测试文件中本地尝试过,尽管它也没有涵盖所有单击事件,即使官方网站写道“......而beforeEach
和afterEach
是运行 每个测试用例(测试步骤)之前和之后"?
我正在寻找的解决方案:
.waitForElementVisible('selector')
.click('selector')
.click('selector')
到目前为止我想出的解决方案:
.waitForElementVisible('selector')
.click('selector', isPresent)
.click('selector', isPresent)
isPresent
作为回调函数,它会检查并关闭弹出 window 如果它出现。
有没有其他方法可以写一个函数(带或不带after
and/or forEach
),以便在每次点击事件或每个命令后调用。因此,我不必编写 isPresent
重复代码?
你应该使用 .switchWindow() 方法。
为什么不针对这种情况编写自己的自定义命令,这样就可以避免重复代码?
您可以在页面对象文件中插入类似这样的内容:
var popupCommand = {
popupCheck:function(){
return this.waitForElementVisible('selector', 5000)
.click('selector', isPresent)
.click('selector', isPresent)
},
module.exports = {
commands:[popupCommand],
elements:{
firstElement: {selector: 'xpath',locateStrategy: 'xpath'},
secondElement: {selector: 'css'},
}
}
其中 'popupCommand' 将是您的页面对象文件的名称,例如 'Popup'。而且您还必须在此处插入您的 isPresent 回调函数,以便您可以使用它。 我已尽力向您尽可能多地解释该做什么以及如何做:)