🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

4回答

2342閲覧

seleniumでchromedriverを使いたいです。

jack_kanzaki

総合スコア106

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

パス

パス(path)はファイルシステムの場所(階層)を明示したものです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2019/11/17 08:25

編集2019/11/21 15:19

こちらの方に、現在の問題をまとめて記載させていただきました。

https://teratail.com/questions/224723?modal=q-comp

以前に質問なさった方の方法も参考にさせていただいたのですが、
https://teratail.com/questions/190466
解決できなかったため、質問させていただきます。

chromedriver

1from time import sleep 2from selenium import webdriver 3 4# chromeを起動 5browser = webdriver.Chrome('/home/ec2-user/.local/lib/python3.6/site-packages/chromedriver') 6 7browser.get("https://www.google.co.jp") 8 9browser.save_screenshot("screen.png") 10 11sleep(5) 12browser.close()

AWS

1ec2-user:~/environment/ch2 $ python3 chromeDriver.py 2Traceback (most recent call last): 3 File "/home/ec2-user/.local/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 76, in start 4 stdin=PIPE) 5 File "/usr/lib64/python3.6/subprocess.py", line 729, in __init__ 6 restore_signals, start_new_session) 7 File "/usr/lib64/python3.6/subprocess.py", line 1364, in _execute_child 8 raise child_exception_type(errno_num, err_msg, err_filename) 9PermissionError: [Errno 13] Permission denied: '/home/ec2-user/.local/lib/python3.6/site-packages/chromedriver' 10 11During handling of the above exception, another exception occurred: 12 13Traceback (most recent call last): 14 File "chromeDriver.py", line 7, in <module> 15 browser = webdriver.Chrome('/home/ec2-user/.local/lib/python3.6/site-packages/chromedriver') 16 File "/home/ec2-user/.local/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__ 17 self.service.start() 18 File "/home/ec2-user/.local/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 88, in start 19 os.path.basename(self.path), self.start_error_message) 20selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home

chromedriverのインストール場所

AWS

1ec2-user:~/environment/ch2 $ pip install chromedriver 2Requirement already satisfied: chromedriver in /home/ec2-user/.local/lib/python3.6/site-packages (2.24.1)

vimでパスを通してみようと試みるも

/home/ec2-user/.local/lib/python3.6/site-packagesの場所にパスを通したらchromedriverがうまく動くかなと思って(which chromedriverで見つからなかったので)、vi ~/.bashrcのコマンドを打って、

vim

1export PATH="$PATH:$HOME/.local/lib/python3.6/site-packages"

と追記し、
:wqで抜けたので、パスがうまく通るのかな、と思ったのですが通りませんでした。

そもそもパスの問題ではないのか等、教えていただけると幸いです。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2019/11/17 08:29

ls -l /home/ec2-user/.local/lib/python3.6/site-packages/chromedriver は?
jack_kanzaki

2019/11/17 08:31

ec2-user:~/environment/ch2 $ ls -l /home/ec2-user/.local/lib/python3.6/site-packages/chromedriver total 8 -rw-rw-r-- 1 ec2-user ec2-user 684 Oct 12 17:59 __init__.py drwxrwxr-x 2 ec2-user ec2-user 4096 Oct 12 17:59 __pycache__
jack_kanzaki

2019/11/17 08:31

早速のお返事ありがとうございます。
otn

2019/11/22 05:42

> vimでパスを通してみようと試みるも $HOME/.local/lib/python3.6/site-packages は、Pythonのライブラリなので、PATHとは関係ないです。
jack_kanzaki

2019/11/22 05:46

了解です。 いつもお返事ありがとうございます。
guest

回答4

0

ベストアンサー

webdriver.Chrome()の引数は、Pythonパッケージのディレクトリじゃなくて、chromedriverの実行ファイルのパスを指定します。

chromedriverはどこにダウンロードしましたか?そのファイルのフルパスです。
あるいはしていないのなら、下記からChromeのバージョンに合ったものをダウンロードしてください。
https://chromedriver.chromium.org/downloads

投稿2019/11/17 08:55

otn

総合スコア85882

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jack_kanzaki

2019/11/17 09:05

ec2-user:~/environment/ch2 $ cd /home/ec2-user/.local/lib/python3.6/site-packages ec2-user:~/.local/lib/python3.6/site-packages $ ls すると、chromedriverがあるのですが、これはインストールされたもではないのかもしれません。 これがchromedriverのインストールされた場所だと思っていました。
otn

2019/11/17 09:12

> すると、chromedriverがあるのですが、 ls -l してもらった結果、実行ファイルじゃなくてディレクトリであることがわかりました。
otn

2019/11/17 09:17 編集

上記サイトからダウンロードしたかどうか覚えてないのなら、ダウンロードして、 ~/bin/ あたりに入れておくとよいと思います。 selenium用pythonパッケージのインストールでは、chromedriver の実行ファイルはインストールされません。chromeブラウザのバージョンに依存するので。
jack_kanzaki

2019/11/17 23:56

wget https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_linux64.zip をもちいて/usr/local/binに作成しましたが、同様のエラーが出てしまいました。Amazon Linuxを用いている場合はlinux64の方をダウンロードするという認識でしたが、大丈夫でしょうか。 尚、windows10でAWS cloud9を利用しています。 引き続き、よろしくお願いいたします。
jack_kanzaki

2019/11/17 23:59

/usr/local/binにファイルは作られたものの、中身がないのかもしれません。 ec2-user:/usr/local/bin $ wget https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_linux64.zip --2019-11-17 23:51:16-- https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_linux64.zip Resolving chromedriver.storage.googleapis.com (chromedriver.storage.googleapis.com)... 172.217.25.112, 2404:6800:4004:80b::2010 Connecting to chromedriver.storage.googleapis.com (chromedriver.storage.googleapis.com)|172.217.25.112|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 5527671 (5.3M) [application/zip] chromedriver_linux64.zip: Permission denied Cannot write to ‘chromedriver_linux64.zip’ (Success).
otn

2019/11/18 02:57

/usr/local/bin に書き込み権はあるのですか? というか、zipファイルをbinに入れてもしょうがない。 解凍後の実行ファイルを入れましょう。
jack_kanzaki

2019/11/19 03:01

zipファイルをlinuxへ解凍していれる方法がわからないので、また調べて質問させてください。 ご回答本当にありがとうございます。
otn

2019/11/19 03:34

解凍は、unzip ~~~.zip です。
jack_kanzaki

2019/11/21 10:37

遅くなりました。 ありがとうございます。 zipファイルの解凍まで、たどり着けました!
guest

0

一連の問題をqittaにまとめてみました。
https://qiita.com/jack_kanzaki/items/84cb6e56d0cf71ac3dbe

投稿2019/11/28 05:15

jack_kanzaki

総合スコア106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2019/11/28 06:18

chromedriver以前に、そもそもChromeが動くようになってなかったと言うことですかね。 方向としては xvfb を使うという方向でいいかと思います。
jack_kanzaki

2019/11/28 07:20

その通りです。 かしこまりました。
otn

2019/11/28 07:30

そういった意味では、前提がクリアされているかどうかですね。 ・まず、Chromeが動くことを確認しましょう ・Pythonが動くことを確認しましょう ・pip等でパッケージがインストールできることを確認しましょう で、はじめてselenium-webdriverに取りかかれます。
jack_kanzaki

2019/11/28 12:09

現在、chromeが動かなくて困っています。 どのようにすれば、動くようになりますでしょうか。
otn

2019/11/28 12:27

経験なく、ちょこちょこっとやってみるレベルを超えているので、わかりません。
jack_kanzaki

2019/11/28 14:40

ちょっと、うまくいかないので、いったん保留にしておくことにしました(^^) 返信、何度も本当にありがとうございます!!
guest

0

chromeが壊れているかもしれないというエラーに変更になりました。

AWS

1ec2-user:~/environment/ch2 $ python3 chromedriver.py 2Traceback (most recent call last): 3 File "chromedriver.py", line 4, in <module> 4 browser = webdriver.Chrome() 5 File "/home/ec2-user/.local/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__ 6 desired_capabilities=desired_capabilities) 7 File "/home/ec2-user/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__ 8 self.start_session(capabilities, browser_profile) 9 File "/home/ec2-user/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session 10 response = self.execute(Command.NEW_SESSION, parameters) 11 File "/home/ec2-user/.local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute 12 self.error_handler.check_response(response) 13 File "/home/ec2-user/.local/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response 14 raise exception_class(message, screen, stacktrace) 15selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally 16 (unknown error: DevToolsActivePort file doesn't exist) 17 (The process started from chrome location /opt/google/chrome/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) 18

尚、/opt/google/chromeは以下の通りです。

AWS

1ec2-user:/opt/google/chrome $ ls 2chrome lib product_logo_16.png swiftshader 3chrome_100_percent.pak locales product_logo_24.png v8_context_snapshot.bin 4chrome_200_percent.pak MEIPreload product_logo_256.png WidevineCdm 5chrome-sandbox nacl_helper product_logo_32.png xdg-mime 6default-app-block nacl_helper_bootstrap product_logo_32.xpm xdg-settings 7default_apps nacl_irt_x86_64.nexe product_logo_48.png 8google-chrome natives_blob.bin product_logo_64.png 9icudtl.dat product_logo_128.png resources.pak

また、vi google-chromeは以下のようになっています。

vim

1#!/bin/bash 2# 3# Copyright (c) 2011 The Chromium Authors. All rights reserved. 4# Use of this source code is governed by a BSD-style license that can be 5# found in the LICENSE file. 6 7# Let the wrapped binary know that it has been run through the wrapper. 8export CHROME_WRAPPER="`readlink -f "$0"`" 9 10HERE="`dirname "$CHROME_WRAPPER"`" 11 12# We include some xdg utilities next to the binary, and we want to prefer them 13# over the system versions when we know the system versions are very old. We 14# detect whether the system xdg utilities are sufficiently new to be likely to 15# work for us by looking for xdg-settings. If we find it, we leave $PATH alone, 16# so that the system xdg utilities (including any distro patches) will be used. 17if ! which xdg-settings &> /dev/null; then 18 # Old xdg utilities. Prepend $HERE to $PATH to use ours instead. 19 export PATH="$HERE:$PATH" 20else 21 # Use system xdg utilities. But first create mimeapps.list if it doesn't 22 # exist; some systems have bugs in xdg-mime that make it fail without it. 23 xdg_app_dir="${XDG_DATA_HOME:-$HOME/.local/share/applications}" 24 mkdir -p "$xdg_app_dir" 25 [ -f "$xdg_app_dir/mimeapps.list" ] || touch "$xdg_app_dir/mimeapps.list" 26fi 27 28# Always use our versions of ffmpeg libs. 29# This also makes RPMs find the compatibly-named library symlinks. 30if [[ -n "$LD_LIBRARY_PATH" ]]; then 31 LD_LIBRARY_PATH="$HERE:$HERE/lib:$LD_LIBRARY_PATH" 32else 33 LD_LIBRARY_PATH="$HERE:$HERE/lib" 34fi 35export LD_LIBRARY_PATH 36 37export CHROME_VERSION_EXTRA="stable" 38 39# We don't want bug-buddy intercepting our crashes. http://crbug.com/24120 40export GNOME_DISABLE_CRASH_DIALOG=SET_BY_GOOGLE_CHROME 41 42# Sanitize std{in,out,err} because they'll be shared with untrusted child 43# processes (http://crbug.com/376567). 44exec < /dev/null 45exec > >(exec cat) 46exec 2> >(exec cat >&2) 47 48# Note: exec -a below is a bashism. 49exec -a "$0" "$HERE/chrome" "$@"

引き続き、よろしくお願いします。

投稿2019/11/21 14:43

編集2019/11/21 14:44
jack_kanzaki

総合スコア106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

chromedriverを/usr/local/bin/chromedriverという位置に置くことができました。
まだ、chromedriverは動かないので、別枠で質問させてください。

AWS

1ec2-user:/usr/local/bin $ sudo wget https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_linux64.zip 2 3 4--2019-11-21 10:29:02-- https://chromedriver.storage.googleapis.com/78.0.3904.70/chromedriver_linux64.zip 5Resolving chromedriver.storage.googleapis.com (chromedriver.storage.googleapis.com)... 172.217.26.16, 2404:6800:4004:809::2010 6Connecting to chromedriver.storage.googleapis.com (chromedriver.storage.googleapis.com)|172.217.26.16|:443... connected. 7HTTP request sent, awaiting response... 200 OK 8Length: 5527671 (5.3M) [application/zip] 9Saving to: ‘chromedriver_linux64.zip’ 10 11chromedriver_linux64.zip 100%[=======================================>] 5.27M --.-KB/s in 0.08s 12(62.9 MB/s) - ‘chromedriver_linux64.zip’ saved [5527671/5527671]

AWS

1ec2-user:/usr/local/bin $ sudo unzip chromedriver_linux64.zip 2Archive: chromedriver_linux64.zip 3 inflating: chromedriver

AWS

1ec2-user:/usr/local/bin $ sudo rm -rf chromedriver_linux64.zip

投稿2019/11/21 14:15

jack_kanzaki

総合スコア106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2019/11/21 14:21

PATHの通ったところに置いたので、引数なしの、 browser = webdriver.Chrome() でいいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問