세션을 열 때 RSelenium 브라우저에 프록시를 지정하기
브라우저 경로에는 extraCapabilities를 사용하고, 세션 프로토콜 거부와 프록시에 도달하지 못하는 브라우저를 구분합니다.
driver$open() 전에 프록시를 브라우저 세션 기능으로 제공합니다. WebDriver 서버가 세션 프로토콜을 받아들이는 RSelenium 배포에서의 예입니다:
browser_proxy <- list(
proxyType = 'manual',
httpProxy = 'proxy.example:8080',
sslProxy = 'proxy.example:8080'
)
driver <- RSelenium::remoteDriver(
remoteServerAddr = 'webdriver.example',
port = 4444L,
browserName = 'chrome',
extraCapabilities = list(proxy = browser_proxy)
)
driver$open()remoteServerAddr 는 WebDriver 서비스를 지정합니다. 이 기능은 브라우저가 다음에 어디로 가는지를 설명합니다. R의 HTTP 프록시 설정만으로는 그 브라우저 경로가 구성되지 않습니다.
host:port 은 httpProxy 와 sslProxy 에 사용합니다. 후자는 HTTPS 목적지를 고르며 TLS로 보호되는 프록시 수신기를 뜻하지 않습니다. HTTP 프록시 목록의 공개 HTTP 후보는 브라우저 호스트가 도달할 수 있다면 이 필드에 호스트와 포트를 제공합니다.
어느 실패가 먼저 발생했는가
세션 열기가 거부되면 프록시 엔드포인트를 바꾸기 전에 프로토콜 호환성을 확인합니다. RSelenium의 remoteDriver 소스는 구식 desiredCapabilities 을 보냅니다. 임의의 최신 WebDriver 서버는 경로를 시험할 브라우저가 생기기 전에 그 형식을 거부할 수 있습니다.
세션이 열리지만 탐색이 실패하면 실제 브라우저 호스트에서의 도달성을 확인합니다. 컨테이너나 Grid 노드에서는 localhost 이 그 노드를 뜻하며 R 워크스테이션이 아닙니다.