크롬에서 Selenium WebDriver 파이썬 바인딩 실행


147

Selenium과 작업하는 동안 문제가 발생했습니다. 내 프로젝트에는 Chrome을 사용해야합니다. 그러나 Selenium으로 시작한 후에는 해당 브라우저에 연결할 수 없습니다.

어떤 이유로 Selenium은 Chrome 자체를 찾을 수 없습니다. 경로를 포함하지 않고 Chrome을 시작하려고 할 때 발생하는 현상입니다.

Traceback (most recent call last):
  File "./obp_pb_get_csv.py", line 73, in <module>
    browser = webdriver.Chrome() # Get local session of chrome
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
    self.service.start()
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 58, in start
    and read up at http://code.google.com/p/selenium/wiki/ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path.                 Please download from http://code.google.com/p/selenium/downloads/list                and read up at http://code.google.com/p/selenium/wiki/ChromeDriver'

이 문제를 해결하기 위해 Chrome을 시작하는 코드에 Chromium 경로를 포함 시켰습니다. 그러나 인터프리터는 연결할 소켓을 찾지 못했습니다.

Traceback (most recent call last):
  File "./obp_pb_get_csv.py", line 73, in <module>
    browser = webdriver.Chrome('/usr/bin/chromium') # Get local session of chrome
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
    self.service.start()
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 64, in start
    raise WebDriverException("Can not connect to the ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'Can not connect to the ChromeDriver'

또한 다음을 사용하여 크롬을 시작하여 문제를 해결하려고했습니다.

크롬-원격 쉘 포트 = 9222

그러나 이것은 작동하지 않았습니다.

추신. 내 시스템에 대한 정보는 다음과 같습니다.

www-client : 크롬 15.0.874.121  
dev-lang : python 2.7.2-r3 셀레늄 2.11.1  
운영체제 : GNU / Linux Gentoo Kernel 3.1.0-gentoo-r1

"--remote-shell-port"가 유효한 명령 행 옵션이 아님을 알려 드리고자합니다. 참조 : peter.sh/experiments/chromium-command-line-switches는 ( "--remote-포트를 디버깅하는 것이"올바른 것입니다 당신이 옵션을 사용하기 전에 모든 크롬 인스턴스를 종료 할 필요가 있음을 양해하여 주시기 바랍니다 즉이를 작성.. 기존 브라우저 세션의 새 창이 작동하지 않습니다).
dpat

답변:


133

독립형 ChromeDriver 바이너리 (Chrome 브라우저 바이너리와 다른)가 경로에 있거나 webdriver.chrome.driver 환경 변수에 있는지 확인해야합니다.

연결 방법에 대한 자세한 내용 은 http://code.google.com/p/selenium/wiki/ChromeDriver 를 참조 하십시오 .

편집하다:

경로 또는 환경 변수 에서 크롬 드라이버 바이너리를 읽는 Python 바인딩의 버그 인 것 같습니다 . 크롬 드라이버가 경로에 없으면 생성자에 인수로 전달해야합니다.

import os
from selenium import webdriver

chromedriver = "/Users/adam/Downloads/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://stackoverflow.com")
driver.quit()

그것을 언급하는 것을 잊지 마십시오. 이 링크가 있습니다.
Akendo

2
대신 파이어 폭스 Webdriver의 Chromedriver .. 거의 3 배의 성능 향상 .. 시도
UberNeo

4
또한, 단지 생성자에 전달 된 인수가 경로입니다 언급 할 ChromeDriver 바이너리하지 ChromeDriver 바이너리를 포함하는 디렉토리 (잘못 무슨 일이 있었는지 알아내는 과거 반에게 시간 낭비를).
TheRookierLearner 4

107

리눅스

  1. 최신 버전의 크롬 brwoser를 설치했는지 확인하십시오-> chromium-browser -version
  2. 그렇지 않은 경우 최신 버전의 크롬을 설치하십시오. sudo apt-get install chromium-browser
  3. 여기 에서 적절한 버전의 크롬 드라이버를 얻으 십시오.
  4. chromedriver.zip을 압축 해제하십시오
  5. 파일을 /usr/bin디렉토리로 이동sudo mv chromedriver /usr/bin
  6. Goto /usr/bin디렉토리cd /usr/bin
  7. 이제 sudo chmod a+x chromedriver실행 가능으로 표시하는 것과 같은 것을 실행해야합니다 .
  8. 마지막으로 코드를 실행할 수 있습니다.

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.get("http://www.google.com")
    print driver.page_source.encode('utf-8')
    driver.quit()
    display.stop()

1
아주 좋아요! 참고 사항 : 64 비트 리눅스를 실행하고 있지만 32 비트 크롬 드라이버에서만 작동하도록 할 수있었습니다.
Imran

Ubuntu (14.04)에서 chromium-chromdriver 패키지 (예 : apt-get)를 설치하고 chromeshell 파일 경로를 PATH 셸 변수 PATH = "$ {PATH}"에 추가 할 수 있습니다 ./usr/lib/chromium-browser/ 이것을 .bashrc에 추가하면 셀레늄으로 테스트 할 때마다 설정할 필요가 없습니다.
Arpad Horvath

1
실제로이 답변에는 더 많은 투표가 있어야합니다. 기본적으로 이것은 도마뱀 드라이버와 같은 모든 운전자에게 갈 수있는 방법입니다.
holzkohlengrill

내 크롬 브라우저 버전은 (Chromium 67.0.3396.99 Ubuntu 기반, Ubuntu 16.04에서 실행)으로 언급되어 있지만 링크의 버전은 2.0-2.9입니다. 도움이 필요해.
Vaibhav Maheshwari

93

Mac OSX 만

더 쉽게 갈 수있는 방법 (이미 homebrew가 이미 설치되어 있다고 가정하면 , 그렇지 않은 경우 먼저 시작하고 homebrew가 더 나은 삶을 살게해야 함)은 다음 명령을 실행하는 것입니다.

brew install chromedriver

크롬 드라이버를 경로에 넣으면 모든 설정이 완료됩니다.


Mac에서는 작동하지 않습니다. selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
wyx

1
@wyx 환경이 올바르게 설정되지 않았을 수 있습니다. 달리기brew doctor 하고 그것이 무엇인지 발견하십시오.
Jachin

2
이것은 Mac을 가지고 있다는 사실에 만족할 때 따뜻하고 모호한 순간 중 하나입니다. 너무 쉽게.
사용자

심장! 나는 양조를 좋아한다
RHSMan

52

창문 용

에서 ChromeDriver 다운로드 이 직접 링크 또는 에서 최신 버전을 얻을 이 페이지를 .

chromedriver.exe파일을 C:\Python27\Scripts폴더 에 붙여 넣습니다 .

이것은 지금 작동해야합니다 :

from selenium import webdriver
driver = webdriver.Chrome()

23

창문의 경우 chromedriver.exe아래 에 배치 하십시오<Install Dir>/Python27/Scripts/


그리고 우분투에 넣을 곳은 어디입니까? int /usr/lib/또는 다른 곳?
Gaurav Jain

파일을 PATH넣는 것만 으로 는 충분하지 않으며 작업이 진행 되는 /Scripts/위치에 넣습니다 ride.py.
Qwerty

1

Chrome에서 Selenium Python 테스트를 실행하는 방법에는 두 가지가 있습니다. Windows (내 경우에는 Windows 10)를 고려하고 있습니다.

전제 조건 : https://sites.google.com/a/chromium.org/chromedriver/downloads 에서 최신 Chrome 드라이버를 다운로드 하십시오.

방법 1 :

i) 선택한 디렉토리 / 위치에서 다운로드 한 zip 파일을 추출합니다.
ii) 다음과 같이 코드에서 실행 파일 경로를 설정하십시오.

self.driver = webdriver.Chrome(executable_path='D:\Selenium_RiponAlWasim\Drivers\chromedriver_win32\chromedriver.exe')

방법 2 :

i) chromedriver.exe를 / Python / Scripts /에 붙여 넣기 만하면됩니다 (제 경우 폴더는 C : \ Python36 \ Scripts입니다).
ii) 이제 다음과 같이 간단한 코드를 작성하십시오.

self.driver = webdriver.Chrome()

-1

Windows IDE의 경우 :

경로가 작동하지 않으면 chromedriver.exe이 프로젝트 구조와 같이 프로젝트에 경로를 추가 할 수 있습니다 .

chromedriver.exe

그런 다음 chromedriver.exe주 파일에를 로드해야 합니다. 나에 관해서는 driver.exein을 로드 했습니다 driver.py.

def get_chrome_driver():
return webdriver.Chrome("..\\content\\engine\\chromedriver.exe",
                            chrome_options='--no-startup-window')

..driver.py's상위 디렉토리를 의미

.driver.py는 위치한 디렉토리를 의미

이것이 도움이 되길 바랍니다.

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