我有一个使用AngularJS的ruby项目,目前我正在将测试从Phantomjs转换为Headless chrome,但我不断收到错误消息:
RAD
在多个测试文件中都会发生这种情况。 我尝试添加
“ accept_alert {}”在命令之前:
Selenium::WebDriver::Error::UnhandledAlertError:
unexpected alert open: {Alert text : }
但收到
#from
find('.sp-advanced-configuration').click
#to
accept_alert{ find('.sp-advanced-configuration').click }
以及
Failure/Error: accept_alert{ ... }
Capybara::ModalNotFound:
Unable to find modal dialog
不确定要尝试什么
/ *********** ********* /
进一步研究之后,似乎只要继续进行下一个测试之前,测试上还有未保存的更改,就会出现此问题。
有没有一种方法可以接受每个测试而不必添加
Selenium::WebDriver::Error::UnhandledAlertError:
unexpected alert open: {Alert text : }
在每个测试文件中?
答案 0 :(得分:0)
看到这个的原因是Poltergesit / PhantomJS曾经用来自动接受意外的系统模态。硒驱动程序不会这样做,因为您的测试应该主动接受或拒绝它。 find('.sp-advanced-configuration').click
是打开警报框的操作吗?从您得到的错误中,我猜不会。 accept_alert
接收到的块必须是实际触发打开系统模态的块。这意味着您的代码可能需要
accept_alert { # action that triggers the alert }
find('.sp-advanced-configuration').click