Ubuntu下非sudo运行Python+Selenium报错,root/sudo正常求助
解决普通用户运行Python+Selenium脚本的权限问题
1. 调整ChromeDriver的安装路径
sudo运行时,webdriver-manager会将ChromeDriver安装在root专属的缓存目录,普通用户无访问权限。修改脚本,指定ChromeDriver安装到普通用户有权限的目录:
from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager options = Options() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') # 指定安装到用户本地缓存目录 driver = webdriver.Chrome( service=Service(ChromeDriverManager(cache_dir="/home/maicon/.cache/webdriver").install()), options=options ) driver.get("https://python.org") print(driver.title) driver.quit() # 用quit彻底关闭浏览器进程
2. 修复Chrome安装目录的权限
确保普通用户对Chrome的安装目录有执行权限:
sudo chmod -R o+rx /opt/google/chrome
3. 添加额外的Chrome启动参数
通过指定用户数据目录或调试端口,避免权限冲突:
options.add_argument('--user-data-dir=/tmp/chrome-user-data') # 临时目录,普通用户可读写 options.add_argument('--remote-debugging-port=9222')
4. 检查系统临时目录权限
确保普通用户能读写/tmp目录:
ls -ld /tmp
若输出权限不是drwxrwxrwt,执行以下命令修复:
sudo chmod 1777 /tmp
内容的提问来源于stack exchange,提问作者Maicon Vieira
相关产品推荐
相关产品推荐

