2017-02-03 5 views
0

Linux에서 웹 드라이브를 생성하는 데 약간의 시간이 걸립니다.Linux에서 Selenium Chrome 드라이버

저는 CentOS 7.3입니다. Chrome, Chromium 및 기타 Python 라이브러리를 설치했습니다. 나는 실행 해요 : 문제가 리눅스에 내 항구에 확실히 있도록

chrome_options = webdriver.ChromeOptions() 
thechromedriver = webdriver.Chrome(executable_path='/home/skyscraper/chromedriver', chrome_options=chrome_options) 

다른 경로 대안은 Windows에서 잘 실행됩니다.

은 내가 실행했습니다

chmod a+x chromedriver 

그리고는 chromedriver에 액세스 할 수 있어야합니다 그래서 루트에서 실행됩니다.

시간 초과가있는 스레드 풀을 통해 해당 스레드를 생성 할 때마다 해당 시간 초과가 발생합니다. 를 실행하면 일반적으로 결국 오류가 발생합니다 : 나에게에 갈 많이 제공하지 않는 : 여기

Traceback (most recent call last): 
    File "Skyscrapercomp.py", line 492, in <module> 
    thechromedriver = webdriver.Chrome(executable_path='/home/skyscraper/chromedriver', chrome_options=chrome_options) 
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 69, in __init__ 
    desired_capabilities=desired_capabilities) 
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 92, in __init__ 
    self.start_session(desired_capabilities, browser_profile) 
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 179, in start_session 
    response = self.execute(Command.NEW_SESSION, capabilities) 
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute 
    self.error_handler.check_response(response) 
    File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response 
    raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally 
    (Driver info: chromedriver=2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320),platform=Linux 3.10.0-514.2.2.el7.x86_64 x86_64) 

내 테이크 아웃은 "비정상적으로 종료 크롬 시작하지 못했습니다"이었다.

필자는 pip를 사용하여 Chromium과 Chrome을 설치하기 위해 최신 Selenium과 Yum을 설치했습니다. 물에서 조금 죽은 느낌이 내 다음 단계가 무엇인지 확신 할 수 없기 때문에 나는 올바른 방향으로 자극받을 것을 정말로 감사 할 것입니다.

/업데이트 : 내가는/usr/빈 구글 크롬을 체크

는 원하는 기본 위치가되는 것입니다.

또한는/usr/빈에 chromedriver를 넣고 그것을 위치를 포기하지 않을 시도 :

TheBrowser = webdriver.Chrome() 
TheBrowser.get("http://www.google.com") 
print TheBrowser.page_source.encode('utf-8') 

을하지만이 같은 오류를 제공합니다.

+0

당신은 그것을 대화 형으로 실행하려합니까, 아니면 xvfb를 설치 했습니까? –

+0

셀레늄이 액세스 할 수있는 한 내게 중요하지 않습니다. xvfb를 설정하고 그런 식으로 해보겠습니다. – PoweredByCoffee

+0

문제가 될 수 있습니다. Chrome 드라이버에 표시가없는 경우 오류가 발생합니다. 그래서 네, 적절한 xvfb 솔루션을 설정하십시오. 적어도이 오류의 한 가지 일반적인 원인을 제거합니다. –

답변

0

문제를 찾기 위해 로깅을 사용해보십시오 :

chrome_options = webdriver.ChromeOptions() 
service_log_path = 'chromedriver.log' 
service_args = ['--verbose'] 

thechromedriver = webdriver.Chrome(executable_path='/home/skyscraper/chromedriver', chrome_options=chrome_options, service_args=service_args, service_log_path=service_log_path) 

내 경우에는 오류가 표시 (NO X11 내 우분투 서버)와 함께 있었다. 이것은 나를 도왔습니다 :

from pyvirtualdisplay import Display 
display = Display(visible=0, size=(800, 600)) 
display.start() # don't forget to .stop() it at the end of program 
관련 문제