web-dev-qa-db-ja.com

MAC上のセレン、メッセージ:「chromedriver」実行可能ファイルに誤った権限がある可能性があります

MacでSeleniumを使用して非常に基本的なことを実行しようとしているだけで、Webページを開くことさえできません。次のエラーが発生します。

Traceback (most recent call last):
  File "/Users/godsinred/Desktop/InstagramLiker/GmailAccountGenerator.py", line 10, in <module>
    driver = webdriver.Chrome()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Selenium/webdriver/chrome/webdriver.py", line 68, in __init__
    self.service.start()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/Selenium/webdriver/common/service.py", line 88, in start
    os.path.basename(self.path), self.start_error_message)
Selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home

以下は私のコードです:

from Selenium import webdriver
import time

link = "https://accounts.google.com"
driver = webdriver.Chrome()
driver.get(link)
time.sleep(5)

driver.quit()
7
Jonathan Ishii

エラーはそれをすべて言います:

Selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home

エラーは、検出されているchromedriverが誤った権限を持っていることを明確に述べています。


解決

  • 最新のchromedriverバイナリを ChromeDriver-WebDriver for Chrome からダウンロードし、システムに保存します。
  • chromedriverバイナリに必要な権限があることを確認します。
  • WebDriverおよびWebClientを開始するときに、引数executable_path次のようにchromedriverバイナリの絶対パスとともに:

    from Selenium import webdriver
    
    link = "https://accounts.google.com"
    driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
    driver.get(link)
    

参照

詳細な関連ディスカッションは次の場所にあります。

2
DebanjanB

ここおよび他の関連する投稿のほとんどの回答は、ファイルを/usr/binに移動することをユーザーに提案しており、chromedriverをローカルで正常に実行している場合は問題なく動作します。

ただし、Pythonスクリプトをcx_freezeなどのコンパイラを使用して実行可能ファイルにコンパイルしている場合、プログラムがchromedriver

エラーメッセージが示すように、コンパイルされたプログラムにはchromedriverを操作する権限がありません。コンパイル済みのPython=プログラムでMac上のchromedriverへの相対リンクを使用するには、プログラムでchromedriverの権限をPythonスクリプトを使用:

import os
os.chmod('/path/to/chromedriver', 0755) # e.g. os.chmod('/Users/user/Documents/my_project/chromedriver', 0755)

これをテストするには、次のようにします。

  1. cdを作業ディレクトリに

  2. $ chmod 755 chromedriverを使用すると、プログラムで操作できます。

追伸755は、usr/bin内のファイルのデフォルトの数値権限です。 664は、他の通常のフォルダ(おそらく作業ディレクトリ)内のファイルに対するデフォルトの数値権限です。したがって、chromedriverから適切な権限がないとのクレームがあった場合は、755以上の数値権限を付与する必要があります。

8
jarrettyeo

これはうまくいった!次の手順に従ってPATHを更新しました: https://www.kenst.com/2015/03/installing-chromedriver-on-mac-osx/

Chromedriver.exeをFinderからターミナル(/ etc/paths)にドラッグしてから、ターミナルにアドレスをコピーして、my Python IDE where PATHを挿入する必要があります。

0
meng1313