1つの Capybara テスト用にプロキシ経由のブラウザを選ぶ
名前付きの Selenium ドライバーを登録し、既存ブラウザの起動オプションを変えずに、別の経路を必要とするテストで使います。
スイートの通常のドライバーはそのままにし、プロキシ経由の経路用に 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/'
endRSpec ではドライバーのメタデータから登録済みドライバーを選ぶこともできます。スイートの既存の統合に従ってください。プロキシ設定はブラウザ作成時の引数なので、このドライバーを登録しても、別のドライバーですでに動作しているブラウザは変更されません。ドライバーを切り替えても、そのブラウザの Cookie や開いている接続は引き継がれません。
例では認証なしの HTTP プロキシを使い、公開候補はHTTP プロキシ一覧にあります。認証付きプロキシには、サポートされているブラウザ認証の仕組みが必要です。テスト用ブラウザがローカルアプリケーションに直接到達する必要がある場合は、ブラウザがサポートするバイパス設定で目的の例外を設定してください。
リモートブラウザの場合は、そのブラウザのマシンからプロキシとアプリケーションの両方の到達性を評価してください。