我在夜视仪上进行了一项功能测试,要求您分享您的位置以显示一些结果。每次我与该按钮交互时,浏览器的地理位置默认弹出窗口都会显示出来,我需要与它进行交互(接受或解除它)才能继续进行测试。
为了做到这一点,我尝试了Nightwatch api文档中提到的acceptAlert
,但没有成功。我在几个地方读过,在这种情况下你可以使用命令切换到新窗口,如here:
browser.window_handles(function(result) {
var handle = result.value[0];
browser.switchWindow(handle);
});
我的问题是,当我无法查看该弹出窗口的源代码获取html时,如何点击该按钮?或者还有其他方式可以解雇它吗?
答案 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的答案,其中说你不能这样做,但你可以设置你的浏览器不再要求批准了。 不是很满意但是......你去,一个解决方法。