Ruby on rails 是否可以在初始化后设置Selenium::Driver::Proxy

Ruby on rails 是否可以在初始化后设置Selenium::Driver::Proxy,ruby-on-rails,rspec,capybara,selenium-chromedriver,Ruby On Rails,Rspec,Capybara,Selenium Chromedriver,我目前正在使用Capybara和Chromedriver在Rails应用程序中运行特性测试。目前,我可以看到,在初始化驱动程序时,可以通过args设置代理 Capybara.register_driver :selenium_chrome do |app| Capybara::Selenium::Driver.new( app, browser: :chrome, args: [ '--window-size

我目前正在使用Capybara和Chromedriver在Rails应用程序中运行特性测试。目前,我可以看到,在初始化驱动程序时,可以通过args设置代理

    Capybara.register_driver :selenium_chrome do |app|
      Capybara::Selenium::Driver.new(
        app,
        browser: :chrome,
        args: [
          '--window-size=1240,1400',
          "--proxy-server=#{s.url}",
          '--proxy-bypass-list=127.0.0.1'
        ]
      )
    end

但是,我只需要特定的测试来代理特定的端口,因为我还使用Capybara::Discoball启动Sinatra应用程序,作为代理外部请求的应用程序。因此,我需要能够在代理初始化到当前启动的Sinatra应用程序的端口后更改代理。初始化后是否可以这样做?

否,但您可以用另一个名称注册另一个驱动程序,然后指定将其用于需要它的测试。假设您使用的是默认的capybara rspec配置

Capybara.register_driver :selenium_chrome do |app|
  # register the driver without proxy here
end

Capybara.register_driver :selenium_chrome_proxy do |app|
  # register the driver with proxy config here
end

Capybara.javascript_driver = :selenium_chrome # register default JS driver

it "does something that doesn't need proxy", js: true do
   # test that doesn't use the proxy config
end

it "does something that needs proxy", driver: :selenium_chrome_proxy do
  # test that uses proxy
end