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'
また、次のようにして Chrome を起動して問題を解決しようとしました。
chromium --remote-shell-port=9222
しかし、これもうまくいきませんでした。
PS. 私のシステムに関する情報は次のとおりです:
www-client: chromium 15.0.874.121
dev-lang: python 2.7.2-r3 Selenium 2.11.1
OS: GNU/Linux Gentoo Kernel 3.1.0-gentoo-r1
ベストアンサー1
スタンドアロンの ChromeDriver バイナリ (Chrome ブラウザ バイナリとは異なります) がパス内にあるか、webdriver.chrome.driver 環境変数で使用可能であることを確認する必要があります。
見るhttp://code.google.com/p/selenium/wiki/ChromeDriver配線方法の詳細については、こちらをご覧ください。
編集:
そうですね、パスからchromedriverバイナリを読み込むPythonバインディングのバグのようですまたは環境変数。Chromedriver がパスにない場合は、コンストラクタに引数として渡す必要があるようです。
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()