加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何在Rails 5.1中运行无头浏览器系统测试?

发布时间:2020-12-16 19:16:54 所属栏目:百科 来源:网络整理
导读:documentation for Rails 5.1 system tests有点稀疏.我无法进行执行javascript运行的无头测试.我认为一种方法需要安装和运行xvf.但这比我在其他版本的rails中运行capybara时使用的手动设置更多. 实现这一目标最简单的方法是什么? 解决方法 在Rails 5.1系统
documentation for Rails 5.1 system tests有点稀疏.我无法进行执行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的问题不支持当前的网络标准.不幸的是,目前chromedriver在JS系统模式中存在问题(警报,确认,提示 – 在capybara master分支中解决)并且如果您在测试期间尝试关闭窗口,则会挂起.希望这两个问题很快得到解决.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读