스위트의 일반 드라이버는 그대로 두고 프록시 경로를 위한 두 번째 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은 드라이버 메타데이터를 통해서도 등록된 드라이버를 선택할 수 있습니다. 스위트의 기존 통합 방식을 따르세요. 프록시 설정은 브라우저 생성 인수이므로 이 드라이버를 등록해도 다른 드라이버에서 이미 실행 중인 브라우저는 변경되지 않습니다. 드라이버를 전환해도 해당 브라우저의 쿠키나 열린 연결이 이전되지 않습니다.

예제는 인증이 없는 HTTP 프록시를 사용하며, 공개 후보는 HTTP 프록시 목록에서 확인할 수 있습니다. 인증이 필요한 프록시에는 지원되는 브라우저 인증 구성이 필요합니다. 테스트 브라우저가 로컬 애플리케이션에 직접 접근해야 한다면 브라우저가 지원하는 바이패스 구성에서 원하는 예외를 설정하세요.

원격 브라우저의 경우 해당 브라우저의 머신에서 프록시와 애플리케이션 모두의 도달 가능성을 평가하세요.

관련 글