使用Window_handles点击位置弹出窗口中的按钮,使用夜视仪

时间:2016-04-07 22:01:12

标签: javascript testing automated-tests nightwatch.js window-handles

我在夜视仪上进行了一项功能测试,要求您分享您的位置以显示一些结果。每次我与该按钮交互时,浏览器的地理位置默认弹出窗口都会显示出来,我需要与它进行交互(接受或解除它)才能继续进行测试。

为了做到这一点,我尝试了Nightwatch api文档中提到的acceptAlert,但没有成功。我在几个地方读过,在这种情况下你可以使用命令切换到新窗口,如here

browser.window_handles(function(result) {
    var handle = result.value[0];
    browser.switchWindow(handle);
});

我的问题是,当我无法查看该弹出窗口的源代码获取html时,如何点击该按钮?或者还有其他方式可以解雇它吗?

3 个答案:

答案 0 :(得分:0)

您可以尝试这种语法。 它可能有用:

browser.window_handles(function(result) {
    var handle = result.value[0];
    this.switchWindow(handle);
    this.useXpath(); or this.useCss()
    this.click("locator path")
});

答案 1 :(得分:0)

试试这个

  browser
           .click('@buttonPopup')
           .acceptAlert();

如果您使用的是页面对象,则为:

  pageObject.click('@buttonPopup',function(){
              browser.acceptAlert();           
      })

window_handles方法将处理'tab'而不是弹出窗口。

PS:请记住这一点,phantomjs不会使用acceptAlert / dismissAlert弹出窗口。

答案 2 :(得分:0)

所以,最后,我得到了github的答案,其中说你不能这样做,但你可以设置你的浏览器不再要求批准了。 不是很满意但是......你去,一个解决方法。