繁体   English   中英

如何在Rails 5.1中运行无头浏览器系统测试?

[英]How can I run headless browser system tests in Rails 5.1?

Rails 5.1系统测试文档有点稀疏。 我无法进行执行javascript运行的无头测试。 我认为一种方法需要安装和运行xvf。 但这比我在其他版本的rails中运行capybara时使用的手动设置更多。

实现这一目标最直接的方法是什么?

在Rails 5.1系统测试中,使用的驱动程序由ApplicationSystemTestCase(test / application_system_test_case.rb)中的driven_by调用设置。 假设您已将capybara-webkit驱动程序注册为“webkit”,那么您应该可以这样做

driven_by :webkit

如果你在linux / mac上使用Chrome 59+,另一个潜在的选择就是使用无头镀铬

Capybara.register_driver :headless_chrome do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome, :args => ['headless'])
end

然后在你的测试用例类中

driven_by :headless_chrome

这给你一个无头版的chrome,所以没有capybara-webkit / poltergeist的问题不支持当前的web标准。 不幸的是,目前chromedriver在JS系统模式中存在问题(警报,确认,提示 - 在capybara master分支中解决)并且如果您在测试期间尝试关闭窗口,则会挂起。 希望这两个问题很快得到解决。

另请注意,rails 5.1应该已经删除了对大多数人测试的database_cleaner的需求,因为它已经在测试模式下处理多个线程之间的单个数据库连接的共享。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM