如何在使用selenium时禁用firefox中的加载项

时间:2012-05-14 06:00:08

标签: ruby-on-rails selenium capybara

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

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

OR

有没有办法设置我的所有加载项并保存设置,以便每次运行测试时都不会提示我?

更新

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

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

 Capybara.javascript_driver = :selenium

我想用firefox做测试。我在firefox下设置了一个'test'配置文件,并尝试使用以下内容:

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

Capybara.default_driver = :selenium_firefox_custom

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

我正在使用capybara的git版本;

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

4 个答案:

答案 0 :(得分:4)

如果您不想创建必须维护的配置文件(例如:检入源控件等),您可以动态创建配置文件,如下所示:

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

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

答案 1 :(得分:3)

尝试使用自定义配置文件,并根据需要对其进行命名:

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版本可能已更改,但这就是您必须要做的事情。

答案 2 :(得分:0)

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

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

Ubuntu未经测试的方式是[Alt] + [F2]和firefox -ProfileManager。

之前关闭所有Firefox Windows并杀死现有进程非常重要

答案 3 :(得分:0)