スイートの通常のドライバーはそのままにし、プロキシ経由の経路用に 2 つ目の Chrome ドライバーを登録します。

Capybara.register_driver :chrome_via_proxy do |app|
  options = Selenium::WebDriver::Chrome::Options.new
  options.add_argument('--proxy-server=http://proxy.example:8080')
  Capybara::Selenium::Driver.new(
    app, browser: :chrome, options: options
  )
end

その経路が必要な作業の周りで、このドライバーを選びます。

Capybara.using_driver(:chrome_via_proxy) do
  visit 'https://www.example.com/'
end

RSpec ではドライバーのメタデータから登録済みドライバーを選ぶこともできます。スイートの既存の統合に従ってください。プロキシ設定はブラウザ作成時の引数なので、このドライバーを登録しても、別のドライバーですでに動作しているブラウザは変更されません。ドライバーを切り替えても、そのブラウザの Cookie や開いている接続は引き継がれません。

例では認証なしの HTTP プロキシを使い、公開候補はHTTP プロキシ一覧にあります。認証付きプロキシには、サポートされているブラウザ認証の仕組みが必要です。テスト用ブラウザがローカルアプリケーションに直接到達する必要がある場合は、ブラウザがサポートするバイパス設定で目的の例外を設定してください。

リモートブラウザの場合は、そのブラウザのマシンからプロキシとアプリケーションの両方の到達性を評価してください。

関連記事