Tra*_*ash 11 javascript capybara poltergeist
我有一组测试导致用户登录的Facebook页面.不幸的是,这个页面有一些我无法影响的JavaScript错误,所以我的测试永远不会完成.
有没有办法暂时禁用JS错误检查?我在考虑类似的事情:Capybara.javascript_driver.js_errors = false然后将其设置为true稍后,但不幸的是,这不起作用.我尝试过这种变化无济于事.
关于我的问题如何解决的任何想法?
Tra*_*ash 11
感谢Roman Pominov的评论,我找到了解决方案.实际上很简单:
我刚刚rescue Capybara::Poltergeist::JavascriptError在有问题的陈述后添加,然后它就像一个魅力.我最初的想法太复杂了;)
这就是诀窍:
page.driver.browser.js_errors = false
Run Code Online (Sandbox Code Playgroud)
您还可以添加回调:
# spec_helpers.rb
config.around(:each) do |example|
original_value = page.driver.browser.instance_variable_get(:@js_errors)
if example.metadata.has_key?(:js_errors)
page.driver.browser.js_errors = example.metadata[:js_errors]
end
example.run
page.driver.browser.js_errors = original_value
end
Run Code Online (Sandbox Code Playgroud)
在你的测试中:
# my_feature_spec.rb
it "should ignore errors", js_errors: false do
...
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3518 次 |
| 最近记录: |