web-dev-qa-db-ja.com

Selenium WebDriver pythonバインディングをクロムで実行する

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

しかし、これもうまくいきませんでした。

PS。これが私のシステムに関する情報です。

www-client:chromium 15.0.874.121 
 dev-lang:python 2.7.2-r3 Selenium 2.11.1 
 OS:GNU/Linux Gentooカーネル3.1.0-gentoo-r1
141
Akendo

スタンドアロンのChromeDriverバイナリ(Chromeブラウザのバイナリとは異なる)がパスにあるか、webdriver.chrome.driver環境変数で使用可能であることを確認する必要があります。

接続方法の詳細については、 http://code.google.com/p/Selenium/wiki/ChromeDriver を参照してください。

編集する

そうですね、パスからまたは環境変数のchromedriverバイナリを読み取るwrt 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()
130
adam goucher

Linuxの場合

  1. 最新バージョンのchrome brwoser-> chromium-browser -versionがインストールされていることを確認します
  2. そうでない場合は、最新バージョンのchrome Sudo apt-get install chromium-browserをインストールしてください。
  3. から適切なバージョンのクロムドライバを入手する ここ
  4. Chromedriverを解凍します。
  5. ファイルを/usr/binディレクトリに移動します。Sudo mv chromedriver /usr/bin
  6. ジャンプ/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()
    
104
Vicky

Mac OSXのみ

homebrew が既にインストールされている場合は、最初にそれを実行し、homebrewで生活を良くすることをお勧めします)次のコマンドを実行するだけです。

brew install chromedriver

それはあなたの道にクロムドライバーを入れるべきであり、あなたはすべて設定されるべきです。

93
Jachin

窓用

ChromeDriverを この直接リンクまたはからダウンロードして最新バージョンを入手してください。から このページ

chromedriver.exeファイルをC:\Python27\Scriptsフォルダーに貼り付けます。

これでうまくいくはずです。

from Selenium import webdriver
driver = webdriver.Chrome()
52
Abdul Majeed

Windowsの場合、chromedriver.exe<Install Dir>/Python27/Scripts/の下に配置してください。

23
user2253967

Google ChromeでSelenium pythonテストを実行する方法は2つあります。私はWindows(私の場合はWindows 10)を検討しています。

前提条件:から最新のChromeドライバをダウンロードします。 https://sites.google.com/a/chromium.org/chromedriver/downloads)

方法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
Ripon Al Wasim