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*
我不明白为什么这个权限问题仍然存在。
你能给我一些指导吗?
提前非常感谢!
解决方案
你说的path
不对。它应该表示用于 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)
推荐阅读
- android-studio - 无法使用 Jitpack 依赖项
- airflow - 云作曲家 rosbag BashOperator
- strapi - Strapi 集合类型未显示在侧边栏中
- reactjs - 在 React UseEffect 上同时关闭两个弹出窗口
- javascript - 必须使用 import 加载 ES 模块:/usr/local/lib/node_modules/yo/node_modules/dateformat/lib/dateformat.js 不支持 ES 模块的 require()
- java - 在java中使用AxCrypt加密文件
- flutter - Flutter First of type 设计
- r - 合并具有不同观察数量的两个数据框并匹配它们
- sql - Postgresql 选择变量
- javascript - 如何让 gitlab ci runner 从 docker-compose up some_service 获取其退出代码