フラスコでセレンをローカルで実行します。私はPhantomJSドライバーを使用しています。以前にパスエラーがありました:
Selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH.
しかし、別のStackOverflowの質問から見つけた後、PhantomJSのパラメーターとして環境パスを渡す必要があることを知りました。以下のパスは、仮想環境フォルダー内のphantomJSフォルダーへのパスです。
driver = webdriver.PhantomJS(executable_path='/Users/MyAcc/Documents/MYWEBAPP/venv/lib/python3.5/site-packages/Selenium/webdriver/phantomjs')
しかし、私は今新しいエラーコードを受け取ります:
Selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable may have wrong permissions.
パスのファイル権限を確認すると、次のようになります。
total 40
drwxr-xr-x 7 USER staff 238 Nov 6 00:07 .
drwxr-xr-x 17 USER staff 578 Nov 6 00:03 ..
-rw-r--r--@ 1 USER staff 6148 Nov 6 00:07 .DS_Store
-rw-r--r-- 1 USER staff 787 Oct 31 12:27 __init__.py
drwxr-xr-x 5 USER staff 170 Oct 31 12:27 __pycache__
-rw-r--r-- 1 USER staff 2587 Oct 31 12:27 service.py
-rw-r--r-- 1 USER staff 2934 Oct 31 12:27 webdriver.py
さて、私はこれを次のコードで解決しました:
browser = webdriver.PhantomJS(executable_path = "/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs")
私はphantomjsファイルを/usr/local/bin
そしてそれはうまくいきました。
私は以前、python + phanomjsについてこの問題に遭遇しました。解決:
Linux
phantomjsを/usr/local/share
Windows
phantomjsを/python/scripts
executable_path = './phantomjs-2.1.1-linux-x86_64/bin/phantomjs'
service_log_path = './log/ghostdriver.log'
driver = webdriver.PhantomJS(executable_path=executable_path, service_log_path=service_log_path)
相対パスと絶対パスの両方を使用できます。
Selenium.common.exceptions.WebDriverException:メッセージ:「phantomjs」実行可能ファイルに誤った権限がある可能性があります。
この間違い、phantomjsがアクセス許可を実行しなかったため、phantomjs-2.1.1-Linux-x86_64/bin/phantomjsが実行アクセス許可を追加する限り、chmod u + x phantomjs
あなたがあなたを助けることを願っています