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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

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

selenium

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

Q&A

解決済

1回答

3391閲覧

ChromeDriverのPATHが通らない

smoke

総合スコア20

Python 3.x

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

selenium

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

0グッド

0クリップ

投稿2022/07/23 00:50

seleniumでChromeDriverを使用したいのですがエラーが出てしまいます。
対処法がわかりません。
エラーの原因と対処方法がわかる方がいればアドバイスお願いいたします。

D:\DEV\AAA\main.py

1from selenium import webdriver 2 3driver = webdriver.Chrome(executable_path="D:\DEV\AAAr\chromedriver.exe")

上記コードを実行すると以下のエラーがでます。

エラーメッセージ PS C:\Users\UserName> & C:/Users/UserName/AppData/Local/Programs/Python/Python39/python.exe d:/DEV/AAA/main.py d:\DEV\AAA\main.py:3: DeprecationWarning: executable_path has been deprecated, please pass in a Service object driver = webdriver.Chrome(executable_path="D:\DEV\AAA\chromedriver.exe") Traceback (most recent call last): File "C:\Users\UserName\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\common\service.py", line 71, in start self.process = subprocess.Popen(cmd, env=self.env, File "C:\Users\UserName\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 951, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Users\UserName\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 1420, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "d:\DEV\AAA\main.py", line 3, in <module> driver = webdriver.Chrome(executable_path="D:\DEV\AAA\chromedriver.exe") File "C:\Users\UserName\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 70, in __init__ super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog", File "C:\Users\UserName\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 90, in __init__ self.service.start() File "C:\Users\UserName\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start raise WebDriverException( selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home

ChromeDriverの環境変数Pathが通っていないことが原因だと考え、
こちらの記事を参考に環境変数を設定しました。

1.「コントロールパネル」を開く 2.「システムとセキュリティ」を開く 3.「システム」を開く 4.「システムの詳細設定」を開く 5.「環境変数」を開く 6.「システム環境変数」から「Path」を選択して「編集」をクリック 7.「新規」をクリックしてパスを追加 8.各ページを「OK」で閉じて再起動

今回の環境だと、D:\DEV\AAA\にchromedriver.exeがあるので、7.「新規」をクリックしてパスを追加の工程でD:\DEV\AAAを追加しました。

もう一度実行してみましたが、同じエラーがでます。

7.「新規」をクリックしてパスを追加の工程でD:\DEV\AAA\を追加してみたりしましたが、結果は変わりません。

デスクトップ上に作成したシステム環境変数を設定していないchromedriver.exeを参照すると普通に動きます。
このことから、Dドライブにおいた.pyやchromedriver.exeを使用するには適切なディレクトリにcdするような処理が必要になるのかなと考えているのですがなにをすればいいかわかりません。

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

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

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

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

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

jbpb0

2022/07/23 01:13

webdriver.Chrome(executable_path="D:\DEV\AAAr\chromedriver.exe") ↓ 変更 webdriver.Chrome(executable_path=r"D:\DEV\AAA\chromedriver.exe") で、どうでしょうか?
jbpb0

2022/07/23 01:22

環境変数Pathに「chromedriver.exe」がある場所(パス)を追加してるなら、 webdriver.Chrome(executable_path="D:\DEV\AAAr\chromedriver.exe") ↓ 変更 webdriver.Chrome() でも大丈夫かも
smoke

2022/07/23 01:36

アドバイスありがとうございます。 webdriver.Chrome(executable_path=r"D:\\DEV\\AAA\\chromedriver.exe") とすることで解決しました。 ちなみにwebdriver.Chrome(executable_path="D:\\DEV\\AAA\\chromedriver.exe")でもエラーをなくすことができました。
jbpb0

2022/07/23 01:54 編集

> webdriver.Chrome(executable_path=r"D:\\DEV\\AAA\\chromedriver.exe") とすることで解決しました。 あれ? 「r"D:...」と「r」を付けたら、「\\」と二つ並べなくても大丈夫なはずなのですが 参考 https://note.nkmk.me/python-raw-string-escape/ の「raw文字列でエスケープシーケンスを無視(無効化)」の「Windowsのパス」 > webdriver.Chrome(executable_path="D:\\DEV\\AAA\\chromedriver.exe")でもエラーをなくすことができました。 そのようにいちいち「\\」と変えるのがメンドクサイので、「r」を付けるのです
guest

回答1

0

自己解決

driver = webdriver.Chrome(executable_path="D:\DEV\AAA\chromedriver.exe")

driver = webdriver.Chrome(executable_path="D:\\DEV\\AAA\\chromedriver.exe")

とすることで解決しました。

投稿2022/07/23 01:37

編集2022/07/23 01:39
smoke

総合スコア20

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問