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

ruby-on-rails-3 – 使用Capybara Selenium时禁用JavaScript

发布时间:2020-12-17 01:36:26 所属栏目:百科 来源:网络整理
导读:我有一个应用程序设计为禁用 JavaScript时仍然可用,所以我想写一些涵盖这些情况的规范. 我正在使用Selenium(Firefox)和Capybara,我正在注册一个禁用JavaScript的新驱动程序(通过Selenium的javascript.enabled属性) # spec/rails_helper.rbCapybara.configure
我有一个应用程序设计为禁用 JavaScript时仍然可用,所以我想写一些涵盖这些情况的规范.

我正在使用Selenium(Firefox)和Capybara,我正在注册一个禁用JavaScript的新驱动程序(通过Selenium的javascript.enabled属性)

# spec/rails_helper.rb
Capybara.configure do |config|
  config.ignore_hidden_elements = true
  config.default_driver = :selenium
end

Capybara.register_driver :disable_js do |app|
  profile = Selenium::WebDriver::Firefox::Profile.new
  profile["javascript.enabled"] = false
  Capybara::Selenium::Driver.new(app,profile: profile)
end


# spec/features/siging_in_spec.rb
context "JavaScript disabled",driver: :disable_js do
  it "user can still sign in" do
    # ...
    # ...
  end
end

功能规格未能实际禁用JavaScript.当测试期间弹出浏览器窗口并用binding.pry暂停时,我绝对可以点击我知道需要JavaScript的项目,看看它们是否正常工作.

旁注:如果我实际进入我的Firefox设置并禁用JavaScript,则测试通过.因此,它似乎继承了我在浏览器中设置的任何配置,而不是实际使用注册驱动程序时指定的配置.

这是正确的做法,还是我错过了什么?

谢谢!

解决方法

注册驱动程序时无法更改javascript.enabled设置,因为selenium将其冻结为true – https://github.com/SeleniumHQ/selenium/blob/master/javascript/firefox-driver/webdriver.json#L35 – 这是因为尝试使用selenium和firefox并且JS禁用 https://github.com/SeleniumHQ/selenium/issues/635时出现问题 – 并且不太可能被更改.你能用rack_test驱动程序运行那些特定的测试吗?或者它没有提供足够的功能?

(编辑:李大同)

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

    推荐文章
      热点阅读