nightwatch - 在每次点击事件后检查弹出窗口

时间:2017-06-06 11:39:48

标签: node.js integration-testing nightwatch.js

夜班中有没有办法检查每次点击事件后是否出现弹出窗口?

我遇到一个问题,即随机出现一条错误消息,我不想为每个点击事件编写相同的回调函数。

我已经尝试过Global.js中的after和afterEach命令,但是命令只会在整个测试之后运行。 我也在测试文件中尝试了本地,虽然它也没有涵盖所有单击事件,甚至认为官方网站写的是......而在每个测试用例之前和之后运行之前和之后的每个测试步骤(测试步骤)& #34 ;?

解决方案我正在寻找:

.waitForElementVisible('selector')
    .click('selector')  
    .click('selector')  

到目前为止我已提出解决方案:

.waitForElementVisible('selector')
    .click('selector', isPresent)  
    .click('selector', isPresent)  

isPresent作为回调函数,如果出现则执行检查并关闭弹出窗口。

是否有另一种编写函数的方法(使用或不使用after和/或forEach),以便在每次单击事件后或每个命令之后调用它。因此,我不必编写isPresent重复代码?

先谢谢!

3 个答案:

答案 0 :(得分:1)

您可以在页面对象文件中插入类似的内容:

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回调函数,以便您可以使用它。 我尽我所能尽可能地向你解释什么以及怎么做:)

答案 1 :(得分:0)

你应该使用.switchWindow()方法。

答案 2 :(得分:0)

为什么不编写自己的特定于该案例的自定义命令,这样可以避免重复代码?