Chrome 브라우저에서 WebDriver를 실행할 때 브라우저가 제대로 실행 되더라도 "로컬 연결 만 허용됩니다"라는 메시지가 표시됨


85

WebDriver를 사용하여 Chrome 브라우저를 실행할 때 콘솔에 다음 메시지가 표시됩니다. 해결 방법을 알려주십시오.

"포트 22582에서 ChromeDriver (v2.10.267521) 시작 중" "로컬 연결 만 허용됩니다."

다음은 내 샘플 코드입니다.

public class Browserlaunch {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32   \\chromedriver.exe");
        WebDriver driver = new ChromeDriver() ;
        driver.get("http://webdunia.com");
        driver.close();
        driver.quit();
    }
}

답변:


96

이것은 정보 용 메시지입니다. 메시지가 알려주는 것은 chromedriver 실행 파일이 로컬 컴퓨터의 연결 만 허용한다는 것입니다.

대부분의 드라이버 구현 (확실히 Chrome 드라이버 및 IE 드라이버)은 HTTP 서버를 생성합니다. 언어 바인딩 (Java, Python, Ruby, .NET 등)은 모두 JSON-over-HTTP 프로토콜을 사용하여 드라이버와 통신하고 브라우저를 자동화합니다. HTTP 서버는 단순히 언어 바인딩에 의해 생성 된 HTTP 요청을 위해 열린 포트에서 수신 대기하므로 언어 ​​바인딩에 의해 시작된 HTTP 서버에 대한 연결은 동일한 호스트의 다른 프로세스에서만 허용됩니다. 이 제한은 브라우저 가 외부 웹 사이트 에 연결할 수있는 연결에는 적용되지 않습니다 . 오히려 단순히 다른 웹 사이트에서 들어오는 연결을 차단 합니다.


제 경우에는 브라우저를 열고 페이지가 비어 있으면 테스트가 중지됩니다. URL에서 Not secure data:, 그래서 그런 의미에서 이것은 문제입니다. 왜 그런지 아십니까?
SMPH '

그래서 driver.get ( 등 ... )을 사용하여 셀레늄과 https 통신을 사용하는 웹 사이트에 액세스하면 해당 사이트로 전송되는 정보가 https로 암호화된다는 의미입니까?
Mike Sandstrom

이 답변에서 언급 된 HTTP (보안되지 않음) 통신은 언어 바인딩 (Java, C #, Python 등의 Selenium 코드)과 브라우저 드라이버 (chromedriver, geckodriver 등) 사이에 있습니다. 브라우저와 웹 사이트 간의 통신은 변경되지 않습니다. 브라우저에서 HTTPS를 사용하는 경우 브라우저와 웹 서버 간의 통신은 여전히 ​​암호화되어야합니다.
JimEvans

동일한 문제가 있습니다. /이 문제가 해결 되었습니까?
user3430861

13

똑같은 오류가 발생했습니다. 나는 오늘 몇 시간 동안이 문제와 싸웠다. chromedriver 버전과 selenium-server-standalone 버전 간의 불일치로 인해 발생한 것 같습니다. config.js 파일은 chromedriver 2.9 및 selenium-server-standalone 2.35.0이있는 디렉토리를 참조했습니다. 2.10 및 2.42.2를 참조하고 있는지 확인하면 작동했습니다.


13

반드시 모범 사례는 아니지만 내 환경은 셀레늄에 액세스해야하는 여러 컴퓨터가있는 로컬 네트워크였습니다.

chromedriver를 실행할 때 다음과 같이 매개 변수를 전달할 수 있습니다.

chromedriver --whitelisted-ips=""

이것은 기본적으로 모든 IP를 허용 목록에 추가합니다. 물론 항상 이상적인 솔루션은 아니지만 프로덕션 환경에 대해주의해야합니다. 그러나 자세한 경고가 표시되어야합니다.

포트 9515에서 ChromeDriver 2.16.333244 (15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca) 시작 모든 원격 연결이 허용됩니다. 대신 화이트리스트를 사용하십시오!

기껏해야 해결 방법이지만 작동합니다.

상대 체크인


5

한동안 보지 않은 오래된 프로젝트를 고쳐야 할 때 이런 일이 일어났습니다. 프로젝트와 관련된 chromedriver가 내 버전의 크롬과 호환되지 않았으므로 chromedriver를 업데이트했을 때 제대로 작동했습니다.


3

이것은 정보 용 메시지입니다. 테스트 스크립트와 chromedriver가 같은 컴퓨터에 있으면 "whitelisted-ips"옵션을 추가 할 수 있습니다. 테스트는 정상적으로 실행됩니다.하지만 그리드 설정에서 chromedriver를 사용하면이 메시지가 나타나지 않습니다.


3
이 bro- "whitelisted-ips"를 어떻게 추가합니까? 저도 같은 문제가 있어요
Tanvir

2
whitelist-ips를 추가하는 방법. 나는 창문을 사용하고있다. 감사합니다
garlapak

1

명령을 별도로 실행하는 것이 아니라 동일한 터미널 에서 실행해야했습니다 .

nohup sudo Xvfb :10 -ac
export DISPLAY=:10
java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.chrome.bin="/usr/bin/google-chrome" -Dwebdriver.chrome.driver="vendor/bin/chromedriver"

1

Selenium 및 ChromeDriver의 호환되지 않는 버전을 사용하는 경우이 오류가 자주 나타납니다.

Maven 프로젝트 용 Selenium 3.0.1 :

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.0.1</version>
    </dependency>

ChromeDriver 2.27 : https://sites.google.com/a/chromium.org/chromedriver/downloads


1
그가 그의 문제를 어떻게 해결할 수 있는지 설명해야합니다. 당신은 문제를 식별하지만 이것을 해결하는 방법은 무엇입니까? 예를 들어 어떤 버전이 호환됩니까?
Sebi

1
나는이 조합을 사용 셀레늄 자바 3.0.1 + ChromeDriver 2.27 (그것은 크롬 v54-56 지원)
비탈리 Nikolaenko

1

수많은 로그와 소스 코드를 읽는 몇 시간의 분석 끝에 마침내 문제가 발견되었습니다. 그리고 그것을 해결하는 것은 아주 쉽습니다.

한 줄로 : --whitelisted-ips =를 크롬 드라이버 (크롬 아님!) 실행 파일 에 전달해야합니다 .

몇 가지 방법으로 수행 할 수 있습니다.

로컬 / 코드에서 직접 ChromeDriver를 사용하는 경우 ChromeDriver 초기화 전에 아래 줄을 삽입하면됩니다.

    System.setProperty("webdriver.chrome.whitelistedIps", "");

원격으로 사용하는 경우 (예 : 셀레늄 허브 / 그리드) 다음 명령과 같이 노드가 시작될 때 시스템 속성을 설정해야합니다.

java -Dwebdriver.chrome.whitelistedIps= testClass etc...

또는 JAVA_OPTSenv 를 전달하여 도커

  chrome:
    image: selenium/node-chrome:3.141.59
    container_name: chrome
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444
      - JAVA_OPTS=-Dwebdriver.chrome.whitelistedIps=

0

Chromedriver는 WebDriver입니다. WebDriver는 여러 브라우저에서 웹 앱을 자동으로 테스트하기위한 오픈 소스 도구입니다. 웹 페이지, 사용자 입력, JavaScript 실행 등으로 이동하는 기능을 제공합니다. 이 드라이버를 실행하면 스크립트가이 드라이버에 액세스하고 Google 크롬에서 명령을 실행할 수 있습니다.

이는 로컬 네트워크에서 실행되는 스크립트 ( Only local connections are allowed.) 또는 외부 네트워크에서 실행되는 스크립트 ( ) 를 통해 수행 할 수 있습니다 All remote connections are allowed.. 항상 로컬 연결 옵션을 사용하는 것이 더 안전합니다. 기본적으로 Chromedriver는 포트를 통해 액세스 할 수 있습니다 9515.

질문에 대한 답은 정보 메시지 일뿐입니다. 그것에 대해 걱정할 필요가 없습니다.

다음은 두 가지 옵션입니다.

$ chromedriver

Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

이것은 모든 IP를 화이트리스트에 추가하는 것입니다.

$ chromedriver --whitelisted-ips=""

Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
All remote connections are allowed. Use a whitelist instead!
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

-4

브라우저 드라이버를 설치하여이 오류를 해결했습니다.

  1. 브라우저를 seleniumhq.org 웹 사이트로 이동하십시오.
  2. 다운로드 탭을 선택하십시오.
  3. 브라우저 섹션까지 페이지를 아래로 스크롤하고 링크를 클릭하여 원하는 드라이버 (예 : Google Chrome 드라이버)를 다운로드합니다.
  4. 다운로드 한 파일 (예 : chromedriver_mac64 (1) .zip)을 두 번 클릭합니다.
  5. 추출 된 파일 (예 : chromedriver)을 두 번 클릭합니다.

참조 : YouTube.com에서 오류 검색

플랫폼 : macOS High Sierra 10.13.3

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.