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初始化 webdriver 和 Web 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
- 最新的 GeckoDriver 即 GeckoDriver v0.19.1
- 最新的 Firefox 版本即 Firefox Quantum v58.0.2
- 在 测试前后从 IDE 中清除 项目 Space .
- 运行 CCleaner 工具,用于在执行 测试套件 .
之前和之后消除 OS 琐事
- 如果 Firefox 的基础版本太旧,请通过 Revo Uninstaller 卸载 Firefox 并安装最新的 GA 发布版本Firefox.
- 执行您的测试。
我已经下载了最新版本的 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初始化 webdriver 和 Web 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
- 最新的 GeckoDriver 即 GeckoDriver v0.19.1
- 最新的 Firefox 版本即 Firefox Quantum v58.0.2
- 在 测试前后从 IDE 中清除 项目 Space .
- 运行 CCleaner 工具,用于在执行 测试套件 . 之前和之后消除 OS 琐事
- 如果 Firefox 的基础版本太旧,请通过 Revo Uninstaller 卸载 Firefox 并安装最新的 GA 发布版本Firefox.
- 执行您的测试。