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

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



답변

독립형 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()


답변

리눅스

  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()

답변

Mac OSX 만

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

brew install chromedriver

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


답변

창문 용

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

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

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

from selenium import webdriver
driver = webdriver.Chrome()


답변

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


답변

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()


답변

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는 위치한 디렉토리를 의미

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