Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用量角器测试确认对话框_Javascript_Angularjs_Testing_Protractor_End To End - Fatal编程技术网

Javascript 用量角器测试确认对话框

Javascript 用量角器测试确认对话框,javascript,angularjs,testing,protractor,end-to-end,Javascript,Angularjs,Testing,Protractor,End To End,这似乎是一个相当简单的问题,但我真的无法在网上找到答案,我自己也无法找到答案 我正在为我的应用程序使用AngularJS,在某个时候,我有一个本机JavaScript确认框/对话框,询问用户是否要接受或取消更改 如何在测试中模拟所选选项(使用量角器)?是否可以访问确认框并“单击”确定或取消,并在我的测试中相应地执行操作?我猜是这样的 ptor.switchTo().<something> ptor.switchTo()。 这是可能的,但我似乎找不到答案。我想我可以回答我自己的问题

这似乎是一个相当简单的问题,但我真的无法在网上找到答案,我自己也无法找到答案

我正在为我的应用程序使用AngularJS,在某个时候,我有一个本机JavaScript确认框/对话框,询问用户是否要接受或取消更改

如何在测试中模拟所选选项(使用量角器)?是否可以访问确认框并“单击”确定或取消,并在我的测试中相应地执行操作?我猜是这样的

ptor.switchTo().<something>
ptor.switchTo()。

这是可能的,但我似乎找不到答案。

我想我可以回答我自己的问题,因为这可能对其他人有用

首先,需要获取量角器实例:

var ptor = protractor.getInstance();
确认对话框的处理方式与警报的处理方式相同,因此,类似这样的方法起到了作用:

var alertDialog = ptor.switchTo().alert();
alertDialog.accept();  // Use to accept (simulate clicking ok)
alertDialog.dismiss(); // Use to simulate cancel button
如此简单优雅,却很难找到答案。
希望这对其他人有所帮助

从上面的评论中复制,但我必须使用browser.switch().alert(),而不是抓取我的量角器实例

最终使用了:

browser.switchTo().alert().accept()

回答警报对话框。

browser.switchTo().alert()


这对我有用。gragrator.getInstance方法对我不起作用。

我使用的是PhantomJS。也许这是一个特定版本的问题?在1.9.7版本中,它对我很有效。我有一个错误:同时使用1.9.7。很奇怪。可能没有任何帮助,但我实际上使用的是1.9.7-4,通过npm安装。
browser.switch to().alert()
对我有效。看见