在烧瓶上局部运行Selenium。我正在使用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
答案 0 :(得分:2)
我将phantomjs文件放入/usr/local/bin
并且工作正常。
答案 1 :(得分:2)
我通过以下代码解决了这个问题:
browser = webdriver.PhantomJS(executable_path = "/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs")
答案 2 :(得分:1)
我在关于python + phanomjs之前遇到过这个问题。 溶液:
<强>的Linux 强>
将phantomjs放入/usr/local/share
<强>窗强>
将phantomjs放入/python/scripts
答案 3 :(得分:1)
我认为您遇到问题的真正原因是: webdrive所需的phantomjs并非selenium/webdriver
折叠之下的那个。当您使用anaconda安装此软件包时,确实令人困惑(至少对我而言)。
conda install -c conda-forge phantomjs
安装它,然后使用phantomjs --version
进行测试。"path = /${home_path}/anaconda3/envs/${env_name}/bin/phantomjs"
。要测试它是否是真实路径,请使用/${home_path}/anaconda3/envs/${env_name}/bin/phantomjs --version
进行测试。它应该正确输出__version__
信息。webdriver.PhantomJS(executable_path=path)
,它将得到修复。 因此,无需使用chmod
或将其放在/usr/local/bin
中(这样,唯一的好处就是可以跳过executable
参数)
答案 4 :(得分:0)
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)
您可以使用相对路径和绝对路径。
答案 5 :(得分:0)
selenium.common.exceptions.WebDriverException:消息:'phantomjs'可执行文件可能具有错误的权限。
这个错误,因为phantomjs没有执行权限,只要对于phantomjs - 2.1.1 - Linux - x86_64 / bin / phantomjs添加执行权限,chmod u + x phantomjs
希望你能帮助你
答案 6 :(得分:-1)
奇怪的是,对我来说,通过将phantomjs放入/usr/local/share
并添加一些符号链接来解决这个问题。我跟着these steps:
/usr/local/share/
:
sudo mv phantomjs-2.1.1-linux-x86_64.tar.bz2 /usr/local/share/.
sudo ln -s /usr/local/share/phantomjs-1.8.1-linux-x86_64 /usr/local/share/phantomjs
sudo ln -s /usr/local/share/phantomjs-1.8.1-linux-x86_64 /usr/local/share/phantomjs
我不是Linux专家,所以我不知道为什么会有所作为。如果有人想要投入,请随意。