Python Selenium 设置路径到 firefox 配置文件(ubuntu)

Posted

技术标签:

【中文标题】Python Selenium 设置路径到 firefox 配置文件(ubuntu)【英文标题】:Python Selenium setting path to firefox profile (ubuntu) 【发布时间】:2016-06-25 07:47:18 【问题描述】:

我已经使用 python 和 Selenium 在 Ubuntu 操作系统中设置了新创建的 Firefox 配置文件的路径。但是当我运行 python 脚本时出现错误

OSError: [Errno 13] Permission denied

我已将文件的权限更改为 755,但我仍然收到错误,还尝试了 sudo。

sudo chmod 775 /home/student/.mozilla/firefox/gwi6uqpe.Default\ User2/

这是我的 python 脚本的开始:-

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.by import By
import sys, time
import time

binary = FirefoxBinary('/home/student/.mozilla/firefox/gwi6uqpe.Default User2')
browser = webdriver.Firefox(firefox_binary=binary)

这是错误信息。

Traceback (most recent call last):

文件“default2.py”,第 9 行,在 浏览器 = webdriver.Firefox(firefox_binary=binary) init 中的文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py”,第 78 行 self.binary,超时) init 中的文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py”,第 51 行 self.binary.launch_browser(self.profile, timeout=timeout) 文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py”,第 67 行,在 launch_browser self._start_from_profile_path(self.profile.path) _start_from_profile_path 中的文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py”,第 90 行 env=self._firefox_env) init 中的文件“/usr/lib/python2.7/subprocess.py”,第 710 行 读错,写错) _execute_child 中的文件“/usr/lib/python2.7/subprocess.py”,第 1327 行 引发 child_exception OSError: [Errno 13] 权限被拒绝

请问我该如何解决。

【问题讨论】:

【参考方案1】:

在我的机器上,~/.mozilla/firefox 及其子目录具有 user:usergroup 700 权限。您的脚本是否由学生用户执行?否则,它将获得权限被拒绝。作为一个实验,您可以尝试授予 .mozilla/firefox 和 .mozilla/firefox/profiles 766 权限。我不会运行这样的生产环境,但您可以创建一个具有权限的组并将您的其他用户添加到该组。

编辑:FirefoxBinary 不是用于指定配置文件的内容。改用 FirefoxProfile:

profile = FirefoxProfile('/home/student/.mozilla/firefox/gwi6uqpe.Default')
browser = webdriver.Firefox(firefox_profile=profile)

【讨论】:

是的脚本正在被学生用户使用。我已尝试按照建议授予 766 权限,但仍然遇到相同的错误。谢谢。 我已经检查了文件和文件夹的用户权限并且都具有 rwx(读写执行) 感谢您的帮助。完美运行。【参考方案2】:
   baseurl = "https://www.google.co.in/"
   driver = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver')
   driver.maximize_window()
   driver.get(baseurl)

【讨论】:

您能否解释一下为什么这有助于作者更好地理解您的解决方案。

以上是关于Python Selenium 设置路径到 firefox 配置文件(ubuntu)的主要内容,如果未能解决你的问题,请参考以下文章

java+selenium——简单截图+时间+保存在某个路径

python selenium chrome headless中的文件下载路径设置不适用

selenium +python+windows 环境搭建

Python+Selenium 自动化实现实例-实现文件下载

安装Python+Selenium

Selenium Python FirefoxWebDriver处理打开保存对话框