首页 > 解决方案 > Capybara 代理在测试时打开/关闭

问题描述

我正在使用水豚、硒和 geckodriver。

我知道我们可以使用如下代码配置 selenium 以使用代理启动 Firefox:

Capybara.register_driver :selenium do |app|
  proxy = Selenium::WebDriver::Proxy.new(http: "127.0.0.1:9999", ssl: "127.0.0.1:9999")

  desired_caps = Selenium::WebDriver::Remote::Capabilities.firefox({
      firefox_profile: "default",
      proxy: proxy
    })
  Capybara::Selenium::Driver.new(app, {:browser => :firefox, :desired_capabilities => desired_caps})
end

Capybara.current_driver = :selenium
@session = Capybara::Session.new(:selenium)

这将启动一个已配置代理的 Firefox 实例。

Capybara 开始测试后,有没有办法打开/关闭代理?(即:我用代理访问url www.xyz.com。然后在不关闭firefox实例的情况下,关闭代理,访问www.abc.com。之后,打开代理访问www.123.com

我看到了一个非常接近我正在寻找的答案,实例化水豚浏览器并设置代理,但评论显示它不再有效。

参考:https ://github.com/SeleniumHQ/selenium/wiki/Ruby-Bindings

标签: ruby-on-railsrubyunit-testingcapybaraselenium-firefoxdriver

解决方案


推荐阅读