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()
エラーはそれをすべて言います:
Selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home
エラーは、検出されている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)
詳細な関連ディスカッションは次の場所にあります。
ここおよび他の関連する投稿のほとんどの回答は、ファイルを/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)
これをテストするには、次のようにします。
cd
を作業ディレクトリに
$ chmod 755 chromedriver
を使用すると、プログラムで操作できます。
追伸
755
は、usr/bin
内のファイルのデフォルトの数値権限です。664
は、他の通常のフォルダ(おそらく作業ディレクトリ)内のファイルに対するデフォルトの数値権限です。したがって、chromedriver
から適切な権限がないとのクレームがあった場合は、755
以上の数値権限を付与する必要があります。
これはうまくいった!次の手順に従ってPATHを更新しました: https://www.kenst.com/2015/03/installing-chromedriver-on-mac-osx/
Chromedriver.exeをFinderからターミナル(/ etc/paths)にドラッグしてから、ターミナルにアドレスをコピーして、my Python IDE where PATHを挿入する必要があります。