【问题标题】:Is it possible to set a Selenium::Driver::Proxy after initialization初始化后是否可以设置 Selenium::Driver::Proxy
【发布时间】:2018-12-13 21:48:07
【问题描述】:

我目前正在使用 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 应用程序的端口后更改它。初始化后可以吗?

【问题讨论】:

    标签: ruby-on-rails rspec capybara selenium-chromedriver


    【解决方案1】:

    否,但您可以使用另一个名称注册另一个驱动程序,然后指定将其用于需要它的测试。假设您使用的是默认的 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 2014-09-29
      • 2014-02-20
      • 2011-08-01
      • 1970-01-01
      相关资源
      最近更新 更多