9

我在我的 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 (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

3 回答 3

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

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

于 2012-07-16T13:39:56.763 回答
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 可能已更改,但这几乎是您必须做的。

于 2012-05-21T21:32:18.553 回答
0

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

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

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

于 2012-05-14T06:39:22.207 回答