当前位置 : 主页 > 编程语言 > ruby >

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

来源:互联网 收集:自由互联 发布时间:2021-06-23
我有一个应用程序设计为禁用 JavaScript时仍然可用,所以我想写一些涵盖这些情况的规范. 我正在使用Selenium(Firefox)和Capybara,我正在注册一个禁用JavaScript的新驱动程序(通过Selenium的javascr
我有一个应用程序设计为禁用 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驱动程序运行那些特定的测试吗?或者它没有提供足够的功能?
网友评论