質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.48%

[python]seleniumでChromeDriverが強制停止する

受付中

回答 5

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 8,643

score 166

問題

http://chromedriver.storage.googleapis.com/index.html?path=2.9/より、ドライバーをインストールして実行したのですが、実行すると途中で強制停止します。
Windows10 64bit
python3.6.3

状況

これに従ってコードを書いているのですが次のようなエラーが出ます。

エラーメッセージ

Traceback (most recent call last):
  File "C:/Users/user/AppData/Local/Programs/Python/Python36-32/MyScript/SeleniumTest.py", line 11, in <module>
    driver.get("https://www.google.co.jp/")
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 320, in get
    self.execute(Command.GET, {'url': url})
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 306, in execute
    response = self.command_executor.execute(driver_command, params)
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 460, in execute
    return self._request(command_info[0], url, body=data)
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 484, in _request
    resp = self._conn.getresponse()
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 1331, in getresponse
    response.begin()
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 297, in begin
    version, status, reason = self._read_status()
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\http\client.py", line 258, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\socket.py", line 586, in readinto
    return self._sock.recv_into(b)
ConnectionResetError: [WinError 10054] 既存の接続はリモート ホストに強制的に切断されました。

ソースコード

#_*_ coding: utf-8 _*_

#import json_util

from selenium import webdriver

import time

driver = webdriver.Chrome("chromedriver_win32/chromedriver")

driver.get("https://www.google.co.jp/")

time.sleep(3)

driver.find_element_by_id("lst-ib").send_keys("Selenium Test")

driver.find_element_by_name("btnK").click()

time.sleep(10)

driver.quit()

32bit版しかなかったので、それを使ったことが原因かなと思うのですが、64bit版はどこにあるのでしょうか?

追記

# -*- coding: utf-8 -*-

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome("C:/Users/user/AppData/Local/Program/Python/Python36-32/MyScript/chromedriver_win32/chromedriver.exe")
content = driver.find_element_by_name("q")
content.send_keys("this is test")
content.send_keys(Keys.ENTER)

エラーメッセージ

Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 74, in start
    stdout=self.log_file, stderr=self.log_file)
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 997, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\MyScript\SeleniumTest.py", line 6, in <module>
    driver = webdriver.Chrome("C:/Users/user/AppData/Local/Program/Python/Python36-32/MyScript/chromedriver_win32/chromedriver.exe")
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 62, in __init__
    self.service.start()
  File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    退会済みユーザー

    2019/03/11 21:55

    回答は出揃ってると思うが、いかがだろう。

    キャンセル

回答 5

0

32bit版しかなかったので、それを使ったことが原因かなと思うのですが、64bit版はどこにあるのでしょうか?

Python Releases for Windows ファイル名にx86-64  が含まれているのが64bit版です。

ChromeDriver - WebDriver for Chrome の ChromeDriver 2.35 では?

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/09 12:46

    いえ、pythonではなくWebDriverの64bit版です
    (python自体は64bitで動いています)

    キャンセル

  • 2018/02/09 13:10

    回答にChromeDriverのURLを追記しました。

    キャンセル

  • 2018/02/09 13:18

    それがURLをクリックするとこれが表示されます。

    Index of /2.35/
    [ICO] Name Last modified Size ETag
    [DIR] Parent Directory -
    [DIR] chromedriver_linux64.zip 2018-01-10 02:35:57 3.55MB
    e6d0298d3e1ed23f6639805d13ac2ae4
    [DIR] chromedriver_mac64.zip 2018-01-10 04:06:12 5.25MB
    720f6f8ab16dd3fcc0d5928402ac9f92
    [DIR] chromedriver_win32.zip 2018-01-10 21:19:40 3.18MB
    de52d0a610fb97fadc02301bc705c12b
    [DIR] notes.txt 2018-01-10 22:44:12 0.01MB
    d3bb3cea8e65d290aab9ed3d60a25d7b

    キャンセル

  • 2018/02/09 13:23

    64bit版を使いたかったら linuxかmacの環境を用意してください、ってことですね。お力になれなくてすみません。

    キャンセル

0

出先でスマホで回答しているので長文が難しいです、すいません。

以前同じ状態になりました。

問題解決したテストソースを手元で見ているのですが

from selenium.webdriver.common.keys import keys

の記述がありました

結構前のことで忘れているのですが、キー操作に必要なモジュールだったような気がします

念のため試してみてください

違ったら罵ってください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/09 13:01

    from selenium import webdriverのあとに書いたところ
    ImportError: cannot import name 'keys'
    のエラーが表示されました・・・

    キャンセル

  • 2018/02/09 13:06

    あとはドライバー指定の部分を絶対パスにして.exeまでいれてみてください。
    というよりもこのまま回答が無ければソースをそのまま送るので気長にお待ちくださいな。

    キャンセル

0

お待たせしました
動作確認済みです

# -*- coding: utf-8 -*-

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome("ドライバーの絶対パス")
content = driver.find_element_by_name("q")
content.send_keys("this is test")
content.send_keys(Keys.ENTER)

大文字小文字気をつけてください

this is testと入力してエンターで検索するテストです

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/09 13:33

    さっそくありがとうございました。
    ですが、まだエラーが出てしまいます・・
    PATHが通されていないと書いてありますが、どうなんでしょう・・

    キャンセル

  • 2018/02/09 13:35

    なお、絶対パスを相対パスに変えたところ、実行はされますあ途中で強制停止してしまうようです

    キャンセル

0

インストールしたChromeDriver のバージョンが2.9と古いのが原因ではないでしょうか?

2.9だとchrome のバージョンがv31-34が対応します。
----------ChromeDriver v2.9 (2014-01-31)----------
Supports Chrome v31-34

以下からChromeDriver 2.35をダウンロードしてくださいな。
Chromeを起動してアドレスにchrome://settings/help を入力するとChromeのバージョンが分かります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/09 13:42

    それでもやっぱりうまくいきません。

    Google Chrome は最新版です
    バージョン: 64.0.3282.140(Official Build) (64 ビット)

    キャンセル

  • 2018/02/09 13:51 編集

    >C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py のエラー行を見る限りでは64bit版ではなく32bit版のpythonで動作してませんか?
    Python36-32 →Python バージョン 3.6を表す36と32ビットを表す-32

    キャンセル

  • 2018/02/09 13:54

    import sys
    print(sys.version) でバージョンの確認が行えます。

    キャンセル

0

以下の環境で検証しましたが、正常に動作します。

OS : Microsoft Windows [Version 10.0.16299.192]
Python : Python 3.5.4 :: Anaconda custom (64-bit)
chrome : バージョン: 64.0.3282.140(Official Build) (64 ビット)

  • コマンドプロンプト(管理者権限)上でseleniumをインストール
C:\WINDOWS\system32>pip install selenium
Collecting selenium
  Downloading selenium-3.9.0-py2.py3-none-any.whl (942kB)
    100% |################################| 952kB 4.5MB/s
Installing collected packages: selenium
Successfully installed selenium-3.9.0
from selenium import webdriver
import time

driver = webdriver.Chrome("chromedriver")
driver.get("https://www.google.co.jp/")
time.sleep(3)

driver.find_element_by_id("lst-ib").send_keys("Selenium Test")
driver.find_element_by_name("btnK").click()
time.sleep(10)
driver.quit()

print('OK')

ブラウザが立上り「Selenium Test」で検索されて終了。
コマンドプロンプト上の結果は以下。

DevTools listening on ws://127.0.0.1:12702/devtools/browser/b018b230-3ac1-4bfd-9b93-e2203bca6489
OK

あなたの環境および行った詳細な手順を追記されると、何か分かるかもしれません。
また、社内セキュリティ上、プロキシ設定が必要な環境だと、それなりの設定コードが必要かもしれません。Selenium Chrome Proxy の設定

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/02/09 14:40

    正常に動作まではしました! 
    が、なぜか文字入力の後に検索されず、次のエラーが出ます。(クリックできないよ~という感じでしょうか?)
    Traceback (most recent call last):
    File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\MyScript\SeleniumTest.py", line 9, in <module>
    driver.find_element_by_name("btnK").click()
    File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
    File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 501, in _execute
    return self._parent.execute(command, params)
    File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 308, in execute
    self.error_handler.check_response(response)
    File "C:\Users\user\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.WebDriverException: Message: unknown error: Element <input value="Google 検索" aria-label="Google 検索" name="btnK" type="submit" jsaction="sf.chk"> is not clickable at point (433, 411). Other element would receive the click: <div class="sbqs_c">...</div>
    (Session info: chrome=64.0.3282.140)
    (Driver info: chromedriver=2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73),platform=Windows NT 10.0.16299 x86_64)

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る