SessionNotCreatedException:消息:使用 Python 将 geckodriver 用于 Selenium 时权限被拒绝(在 Windows 10 中)

SessionNotCreatedException: Message: permission denied while using geckodriver for Selenium using Python (in Windows 10)

我已经下载了最新版本的 Firefox 和相应的(64 位)geckodriver。将 geckodriver 可执行文件的位置添加到 PATH。然而,当我执行以下代码时:

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.google.com')

调用 Firefox,出现以下错误:

Traceback (most recent call last):
  File "C:\Users\Karun\Documents\NJCC all data at once Selenium.py", line 2, in <module>
    browser = webdriver.Firefox()
  File "C:\Users\Karun\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 162, in __init__
    keep_alive=True)
  File "C:\Users\Karun\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 154, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "C:\Users\Karun\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 243, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:\Users\Karun\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Karun\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: permission denied

您看到的错误确实提示我们可能出了什么问题,如下所示:

Traceback (most recent call last):
  File "C:\Users\Karun\Documents\NJCC all data at once Selenium.py", line 2, in <module>
    browser = webdriver.Firefox()
selenium.common.exceptions.SessionNotCreatedException: Message: permission denied

虽然您提到您已经将 geckodriver 可执行文件的位置添加到 PATH 但仍然面临上述错误,所以一个简单的解决方案是下载最新的 GeckoDriver 来自 mozilla/geckodriver 并传递 Key executable_path 以及 Value初始化 webdriverWeb Browser 实例时 GeckoDriver 二进制文件的绝对路径如下:

from selenium import webdriver

driver=webdriver.Firefox(executable_path=r'C:\path\to\geckodriver.exe')
driver.get("http://www.google.com")
print("Page Title is : %s" %driver.title)
driver.quit()

另外确保您使用的是:

  • 最新的JDK版本即Java SE Development Kit 8u161
  • 最新的Selenium Python客户端Selenium 3.9.0
  • 最新的 GeckoDriverGeckoDriver v0.19.1
  • 最新的 Firefox 版本即 Firefox Quantum v58.0.2
  • 测试前后从 IDE 中清除 项目 Space .
  • 运行 CCleaner 工具,用于在执行 测试套件 .
  • 之前和之后消除 OS 琐事
  • 如果 Firefox 的基础版本太旧,请通过 Revo Uninstaller 卸载 Firefox 并安装最新的 GA 发布版本Firefox.
  • 执行您的测试