2016-11-06 96 views
5

在瓶上本地运行Selenium。我使用PhantomJS驱动程序。我以前有一个路径错误:WebDriverException:消息:'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 .. 
[email protected] 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

当你列出目录'ls -al' - 'rwxrwxrwx'时有什么权限? – furas

+0

'总40' 'drwxr-XR-X 7 USER人员238 11月6日0时07分.' 'drwxr-XR-×17 USER人员578 11月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' – Tahir

+0

你解决了这个问题吗? Thasnk你 –

回答

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)

您可以同时使用相对路径和绝对路径。

0

selenium.common.exceptions.WebDriverException:消息:'phantomjs'可执行文件可能具有错误的权限。

这个错误,因为phantomjs没有执行权限,只要为phantomjs - 2.1.1 - Linux的 - x86_64的/ bin中/ phantomjs添加执行权限,文件模式U + X phantomjs

希望你能帮助你

+0

欢迎来到堆栈溢出,不要发布答案两次,编辑你的第一个答案,并在那里做出改变,花一些时间阅读[如何写一个答案](http://stackoverflow.com/help/how-to-回答)。 – Hizqeel

-1

奇怪的是,对我来说,它是通过将幻影放入/usr/local/share并添加一些符号链接来解决的。我跟着these steps

  • 招phantomjs文件夹/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专家,所以我不知道为什么这会产生变化。如果有人想参与,感觉自由。

1

我把phantomjs文件放入/usr/local/bin,它工作正常。

0

我在使用python + phanomjs之前遇到过这个问题。 解决方案: linux ---将幻影放入/ usr/local/share; windows ---将phantomjs放入/ python/scripts。 希望帮助

1

那么我得到这个由下面的代码解决:

浏览器= webdriver.PhantomJS(executable_path = “/usr/local/Cellar/phantomjs/2.1.1/bin/phantomjs”)

+0

它也适用于我在Windows 10中。最后的“phantomjs”是phantomjs.exe,不是折叠。 – Renke

相关问题