【问题标题】:How do I disable add-ons in firefox when using selenium使用 selenium 时如何禁用 Firefox 中的附加组件
【发布时间】:2012-05-14 06:00:08
【问题描述】:

我在我的 Rails 项目中使用 Capybara selenium(在 Ubuntu 10.04 系统上),我刚刚升级了 firefox,当时我正在运行我的测试 firefox 负载,但它现在已经安装了所有附加组件,它正在等待直到我第一次设置每个。

有没有办法在启动 selenium 时禁用所有这些附加组件?

有没有办法设置我的所有插件并保存设置,这样它就不会在每次运行测试时都提示我?

更新

如果我将其更改为使用 chrome,它可以正常工作。

 Capybara.register_driver :selenium do |app|
   Capybara::Selenium::Driver.new(app, :browser => :chrome)
 end

 Capybara.javascript_driver = :selenium

不过,我想用 firefox 进行测试。我在 Firefox 下设置了一个“测试”配置文件,并尝试将其与以下内容一起使用:

Capybara.register_driver :selenium_firefox_custom do |app|
  Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => "test")
end

Capybara.default_driver = :selenium_firefox_custom

这不起作用,它仍然尝试加载我的默认配置文件。

我用的是git版本的capybara;

capybara (1.1.2)
  mime-types (>= 1.16)
  nokogiri (>= 1.3.3)
  rack (>= 1.0.0)
  rack-test (>= 0.5.4)
  selenium-webdriver (~> 2.0)
  xpath (~> 0.1.4)

我也尝试过使用 Capybara.javascript_driver = :selenium_firefox_custom

【问题讨论】:

  • 这是因为自动更新吗?这可以在更新下的高级选项卡中设置。如果它是为第一次使用而设置的,我想你只需要做一次吗?或者您正在使用具有初始状态的虚拟机?如果不是,我不确定!对不起!
  • 这是首次使用插件的设置。如果我在 selenium 关闭浏览器时设置它们,我的所有设置都会被遗忘,我必须再次这样做。
  • 您只是想在启动浏览器时禁用插件兼容性检查?
  • 我在 Firefox 中使用的一些插件在第一次使用时没有启动向导。每次运行我的测试时都会弹出。

标签: ruby-on-rails selenium capybara


【解决方案1】:

如果您不想创建必须维护的配置文件(例如:签入源代码管理等),您可以按如下方式动态创建配置文件:

Capybara.register_driver :selenium_firefox do |app|
  profile = Selenium::WebDriver::Firefox::Profile.new
  profile["extensions.update.enabled"] = false
  profile["app.update.enabled"] = false
  profile["app.update.auto"] = false
  Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => profile)
end

Capybara.default_driver = :selenium_firefox

这将动态创建一个不会更新浏览器版本或扩展的配置文件。希望对您有所帮助!

【讨论】:

    【解决方案2】:

    尝试使用自定义配置文件,并随意命名:

    Capybara.register_driver :selenium_firefox_custom do |app|
      Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => "custom")
    end
    
    Capybara.default_driver = :selenium_firefox_custom
    

    根据您使用的版本,API 可能已经改变,但这几乎是您必须做的。

    【讨论】:

    • 当使用带有 'js: true' 的 javascript 测试时,它不会监听这个 register_driver,有没有办法解决这个问题?
    • 改用javascript_driver
    【解决方案3】:

    由于我不使用 Ubuntu,我只能建议我的 Windows 解决方法。 我认为使用第二个没有插件的 Firefox 配置文件来运行 selenium 测试是一种正确的方法。

    在 Windows 中,可以通过将“firefox.exe -ProfileManager -no-remote”提供给 Windows Run 来实现。

    Ubuntu 未经测试的方法是 [Alt]+[F2] 和 firefox -ProfileManager。 关闭所有 Firefox Windows 并可能在此之前终止仍然存在的进程很重要

    【讨论】:

    • 好的,我在 Firefox 中创建了一个“测试”配置文件并禁用了我所有的附加组件。如何告诉我的 selenium 的 Rails 插件使用 Firefox 的“测试”配置文件?
    猜你喜欢
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    相关资源
    最近更新 更多