当前位置: 首页 > 面试题库 >

权限被拒绝:在python中运行Selenium Webdriver时出现“ geckodriver.log”

慕承允
2023-03-14
问题内容

我已经在centos上安装了Firefox和Selenium。我正在使用Xvfb和pyvirtualdisplay打开浏览器。

当我尝试运行Selenium WebDriver时,我可以打开一个新显示,但是只要我这样做

browser = webdriver.Firefox()

我得到错误:

File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 134, in __init__
    self.service = Service(executable_path, log_path=log_path)
  File "/usr/lib/python2.7/site-packages/selenium/webdriver/firefox/service.py", line 45, in __init__
    log_file = open(log_path, "a+")
IOError: [Errno 13] Permission denied: 'geckodriver.log'

关于这里出了什么问题的任何线索吗?

编辑:克服权限错误后,我得到

Message: 'geckodriver' executable needs to be in PATH


问题答案:

显然,这可能是由于您的Firefox和Selenium之间的不兼容所致。请尝试pip install --upgrade selenium,如果错误仍然存​​在,请尝试下载其他版本的Firefox或gecko驱动程序。

关于消息:

'geckodriver' executable needs to be in PATH

您可以在脚本上设置驱动程序的路径:

ff_profile_dir = "/usr/local/selenium/webdriver/firefox"
ff_profile = selenium.webdriver.FirefoxProfile(profile_directory=ff_profile_dir)
driver = selenium.webdriver.Firefox(ff_profile)

或者,根据此答案,您可以在Unix系统上的bash兼容shell上运行:

export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step

在Windows上,您将需要更新Path系统变量以手动或命令行将完整目录路径添加到可执行geckodriver(不要忘记在将可执行geckodriver添加到系统PATH中生效后重新启动系统)。其原理与Unix相同。



 类似资料:
  • 我添加了使用权限,包括WRITE_EXTERNAL_STORAGE,android.permission.相机,READ_EXTERNAL_STORAGEAndroidManifest.xml. 当我在Nexus6(API 24)中运行我的应用程序时,它向我抛出了以下错误: java.io.IOException:权限被拒绝 这是我的代码: 如何在权限相机运行时打开之前使用它?

  • 问题内容: 通过Flask / Python运行Selenium时收到以下错误 该功能是 如果直接进入应用程序目录并运行脚本(),则不会收到该错误。 基于此,通过Flask运行时,日志文件似乎不可写,但该文件应位于何处? 可执行文件安装在 问题答案: 这些错误为我们提供了一些有关发生了什么错误的提示,如下所示: 按照源代码中的 GeckoDriver 得到了两个默认参数发起和如下: 您的程序在这里

  • 我正在尝试为我的Android应用程序请求运行时权限。这是我的代码: 在我的AndroidManifest中。xml: 但是,上面的代码始终显示权限被拒绝,而不提示用户请求权限。有什么想法吗? 谢谢

  • 我在执行时收到此错误 使用hadoop 3.0 alpha 2版本。 非常感谢您的帮助

  • Windows 10上的更新似乎一夜之间就打破了Python。只是尝试运行python--version返回了一个“权限被拒绝”错误。三次更新都没有;KB4507453、KB4506991或KB4509096看起来可能是罪魁祸首,但问题发生的时间令人怀疑。我希望有一个更简单的解决方案,我没有错过,而不是忙于回滚。 python上的权限是“-rwxr-xr-x”,在安装了昨晚的补丁程序之后,除了让W

  • 我正在使用Docker Compose运行多个容器,包括一个带有Postgres映像的容器。我正在尝试向该容器添加一个卷,以跨容器构建持久化我的数据。但是,当它尝试在容器中为该卷创建目录时,我收到了一个错误。 我运行: 然后 docker compose up 我收到以下错误: 错误:对于cxbenchmark\u db\u 1,无法启动服务db:oci运行时错误:container\u linu