python - linux 中的 Selenium webdriver 权限问题仍然存在

标签 python linux selenium-webdriver

我想看看由 python 脚本控制的 selenium 的功能。我下载了 geckodriver 可执行文件并将其放在某个目录中。我使用 linux 并尝试通过 virtualenv 运行以下代码:

from selenium import webdriver
path = '/home/devel-20/Desktop/devel/programs'
driver = webdriver.Firefox(executable_path=path)

但是,我收到此错误消息:

Traceback (most recent call last):
  File "/home/devel-20/Desktop/devel/virtualenvs/restaurant/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 76, in start
    stdin=PIPE)
  File "/usr/lib/python3.6/subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.6/subprocess.py", line 1344, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Permission denied: '/home/devel-20/Desktop/devel/programs'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/devel-20/Desktop/devel/projects/r/shop/selenium_tests", line 5, in <module>
    driver = webdriver.Firefox(executable_path=path)
  File "/home/devel-20/Desktop/devel/virtualenvs/restaurant/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
    self.service.start()
  File "/home/devel-20/Desktop/devel/virtualenvs/restaurant/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: 'programs' executable may have wrong permissions.

我很困惑,因为我正在与一个名为“devel-20”的用户一起运行它。这是程序目录的权限:

drwxrwxr-x 4 devel-20 devel-20 4096 Sep 27 07:04 programs/

这是 geckodriver 文件的权限:

-rwxrwxr-x  1 devel-20 devel-20 12184306 Sep 16 01:48 geckodriver*

我不明白为什么这个权限问题仍然存在。

你能给我一些指导吗?

提前致谢!

最佳答案

您所指的路径 不正确。它应该表示用于 Firefox 的 geckodriver 二进制文件。

另一种方法,考虑到您的 firefox 安装路径是这样的:

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

firefox_binary = FirefoxBinary('/usr/bin/firefox')
driver = webdriver.Firefox(firefox_binary=firefox_binary)

关于python - linux 中的 Selenium webdriver 权限问题仍然存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52529903/

相关文章:

python - 迭代数据框中的行以查找索引、jupyter 中列中的值并在 csv 文件中打印报告

python - django.db.models.Q 对象的 "|"和 "&"操作的中性元素?

linux - makefile 中的执行错误

c - 程序异常存在时,fwrite() buffer中的数据会被flush吗?

java - 从 jenkins 上传文件进行测试

selenium - 单击基于表列值的复选框 - IE Webdriver Selenium

python - 注册 Matplotlib 颜色图

linux - 如何从 nwjs 为 linux 制作应用程序输出?

java - Selenium 2.0网络驱动程序: Element is no longer attached to the DOM error using Java

python - 如何将数组保存到文件中