Haru57636433
@Haru57636433 (haru .)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

GoogleColaboでパスを通していないエラー「WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home」の対応方法について

解決したいこと

GoogleColaboを使用して、Seleniumでのブラウザ自動操作を行っております。
定期的に作業を行うものを自動化しており、スクレイピングではありません。

先日、下記の質問をさせていただき解決したのですが、
https://qiita.com/Haru57636433/questions/2f8169d2fbc4dc729e8e

翌日、再度同様のエラーが発生し、回答いただいた内容で対応したのですが、
次はパスが通っていないという内容のエラーが発生しました。

ローカルであればパスの場所を指定すればよいと思うのですが、
GoogleColaboの場合、どのようにパスを指定すればよいのでしょうか。

発生している問題・エラー

WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home

発生しているエラーの全文

ブラウザを設定
---------------------------------------------------------------------------
SeleniumManagerException                  Traceback (most recent call last)
/usr/local/lib/python3.8/dist-packages/selenium/webdriver/common/service.py in start(self)
     96                 try:
---> 97                     path = SeleniumManager().driver_location(browser)
     98                 except WebDriverException as new_err:

7 frames
SeleniumManagerException: Message: Selenium manager failed for: /usr/local/lib/python3.8/dist-packages/selenium/webdriver/common/linux/selenium-manager --browser chrome. /usr/local/lib/python3.8/dist-packages/selenium/webdriver/common/linux/selenium-manager: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.29' not found (required by /usr/local/lib/python3.8/dist-packages/selenium/webdriver/common/linux/selenium-manager)
/usr/local/lib/python3.8/dist-packages/selenium/webdriver/common/linux/selenium-manager: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /usr/local/lib/python3.8/dist-packages/selenium/webdriver/common/linux/selenium-manager)


During handling of the above exception, another exception occurred:

WebDriverException                        Traceback (most recent call last)
/usr/local/lib/python3.8/dist-packages/selenium/webdriver/common/service.py in _start_process(self, path)
    211         except OSError as err:
    212             if err.errno == errno.ENOENT:
--> 213                 raise WebDriverException(
    214                     f"'{os.path.basename(self.path)}' executable needs to be in PATH. {self.start_error_message}"
    215                 )

WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home

該当するソースコード

from google.colab import drive
drive.mount('/content/drive/')
%cd /content/drive/MyDrive/操作対象フォルダ
!ls

#Chromiumとseleniumをインストール
print("前処理を開始")
# !apt-get update                      ※この4行は、前回質問の対応後はコメントアウトしている状態
# !apt install chromium-chromedriver
# !cp /usr/lib/chromium-browser/chromedriver /usr/bin
# !pip install selenium                   ※ここまで


#ライブラリをインポート
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
import shutil
import os
import glob
from glob import glob
from pathlib import Path


%cd /content/drive/MyDrive/操作対象フォルダ
!ls


# ファイルの存在確認⇒削除

files = glob(r"/content/drive/MyDrive/操作対象フォルダ/*")

for file in files:
  print("削除前:",file)
  os.remove(file)
  time.sleep(3)
  print("削除後:",file)

  # ファイルの存在確認⇒削除

files = glob(r"/content/drive/MyDrive/操作対象フォルダ/*")

for file in files:
  print("削除前:",file)
  os.remove(file)
  print("削除後:",file)




#---------------------------------------------------------------------------------------
# 処理開始:参考サイト:https://
#---------------------------------------------------------------------------------------
# ブラウザをheadlessモード実行
print("\nブラウザを設定")
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome('chromedriver',options=options)   ※エラー発生のコードはこちらになります
driver.implicitly_wait(10)

例)

自分で試したこと

from selenium import webdriver

d = webdriver.Chrome('ここに書きます')

d.get('https://www.google.com/')

上記のように、パスを指定したいのですが、GoogleColaboの場合、どこがパスになるのか分からない状態です。

お手数ですがご確認よろしくお願いいたします。

0

No Answers yet.

Your answer might help someone💌