Selenium JavaScript: 원격 WebDriver 명령 연결을 프록시로 보내기
원격 Selenium 엔드포인트로 보내는 JavaScript WebDriver 명령에는 usingWebDriverProxy를 사용하십시오.
JavaScript Selenium 스크립트는 해당 서버의 브라우저가 어디로든 이동하기 전에 WebDriver 명령을 원격 서버로 보냅니다. 명령 연결이 HTTP 프록시를 거쳐야 한다면 Builder의 WebDriver 프록시를 설정하십시오:
const { Builder, Browser } = require("selenium-webdriver");
const driver = await new Builder()
.forBrowser(Browser.CHROME)
.usingServer(gridUrl)
.usingWebDriverProxy("http://proxy.example.net:8080")
.build();gridUrl은 실제 Selenium 서버 또는 호스팅된 WebDriver 엔드포인트입니다. 그 경로가 허용된 공개적으로 도달 가능한 엔드포인트의 경우 HTTP 프록시 목록이 usingWebDriverProxy에 쓸 후보를 제공합니다. 이 조각은 async CommonJS 함수 안에서 실행하십시오. 테스트 세션이 끝나면 driver를 종료하십시오.
usingWebDriverProxy는 JavaScript 바인딩의 HTTP 연결을 제어합니다. Chrome의 프록시 기능이나 Chrome 실행 인자를 설정하지는 않습니다.
브라우저 트래픽에도 중계가 필요하다면 의도한 Chrome 옵션을 따로 지정하십시오. 그 브라우저는 원격 머신에서 실행되므로 프록시 엔드포인트가 그곳에서 도달 가능해야 합니다. 스크립트 머신의 loopback 주소가 원격 브라우저에 쓸 수 있는 loopback 서비스가 되는 것은 아닙니다.
실패가 WebDriver 세션을 만드는 중인지 웹사이트를 탐색하는 중인지 구분하십시오. 두 실패는 서로 다른 네트워크 클라이언트와 서로 다른 프록시 정책과 관련될 수 있습니다.