[英]Use Window_handles to click button in location pop-up, with nightwatch
我在夜视仪上进行了一项功能测试,要求您分享您的位置以显示一些结果。 每次我与该按钮交互时,浏览器的geoiplocation默认弹出窗口都会出现,我需要与它进行交互(接受或关闭它)才能继续进行测试。
为了做到这一点,我尝试了在Nightwatch api文档中提到的acceptAlert
,但没有成功。 我在几个地方读过,在这种情况下你可以使用命令切换到新窗口,就像这里 :
browser.window_handles(function(result) {
var handle = result.value[0];
browser.switchWindow(handle);
});
我的问题是,当我无法查看该弹出窗口的源代码获取html时,如何点击该按钮? 或者还有其他方式可以解雇它吗?
您可以尝试这种语法。 它可能有效:
browser.window_handles(function(result) {
var handle = result.value[0];
this.switchWindow(handle);
this.useXpath(); or this.useCss()
this.click("locator path")
});
尝试这个
browser
.click('@buttonPopup')
.acceptAlert();
如果您使用的是页面对象,它将是:
pageObject.click('@buttonPopup',function(){
browser.acceptAlert();
})
window_handles方法将处理'tab'而不是弹出窗口。
PS:记住这一点,phantomjs不会使用acceptAlert / dismissAlert弹出窗口。
所以,最后,我从github得到了这个答案,它说你做不到,但是你可以设置你的浏览器不再要求批准了。 不是很满意但是......你去,一个解决方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.