我正在编写一个程序来搜索网站上的文章中的特定条目,我使用selenium webdriver for Python。
尝试连接到网站时,我遇到了这个例外:
Traceback (most
recent call last):
File "search.py", line 26, in <module>
test.search_for_keywords()
File "search.py", line 13, in search_for_keywords
browser = webdriver.Firefox()
File "C:\Python27\lib\site-packages\selenium-3.0.0b2-py2.7.egg\selenium\webdriver\firefox\webdriver.py", line 65, in __init__
self.service.start()
File "C:\Python27\lib\site-packages\selenium-3.0.0b2-py2.7.egg\selenium\webdriver\common\service.py", line 86, in start
self.assert_process_still_running()
File "C:\Python27\lib\site-packages\selenium-3.0.0b2-py2.7.egg\selenium\webdriver\common\service.py", line 99, in assert_process_still_running
% (self.path, return_code)
selenium.common.exceptions.WebDriverException: Message: Service geckodriver unexpectedly exited. Status code was: 2
它说网络驱动程序意外退出。我该如何解决这个问题?我试图使用python版本2.7.12与firefox版本48.0连接
答案 0 :(得分:6)
在最新的Firefox浏览器中运行python selenium测试(上面的第47版)
“Marionette”或“Gecko Driver”是firefox驱动程序的未来版本。 Firefox 47+与Selenium 2.53中使用的驱动程序不兼容,Selenium 3+将使用名为“Marionette”或“Gecko Driver”的新驱动程序(尚未正式发布)。
<强>先决条件:强>
•Mozilla firefox:版本50.0.2(上面的版本47)
•Selenium:3.0.2版
•Geckodriver:版本0.11.1
•Python:版本2.7.3
<强>设定:强>
•Selenium:pip install –U selenium
•Geckodriver:从https://github.com/mozilla/geckodriver/releases下载geckodriver,解压缩文件并将其放在文件夹中
•使用geckodriver路径设置'Path'环境变量
示例脚本:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
#提供Firefox二进制路径
binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe’)
caps = DesiredCapabilities.FIREFOX.copy()
#Set'marionette'浏览器改为True
caps['marionette'] = True
#通过指定geckodriver可执行路径来启动Firefox实例
driver = webdriver.Firefox(firefox_binary=binary,capabilities=caps, executable_path`='D:/Installers/geckodriver-v0.11.1-win64/geckodriver')
你完成了......!
答案 1 :(得分:1)
我修复此问题,删除了已安装并重新安装selenium的egg
,现在效果很好。
答案 2 :(得分:0)
我在MacOS Big Sur上遇到了这个问题,这是一个安全问题。要解决此问题,请转到系统偏好设置->安全和隐私,并在底部显示geckodriver。您需要单击“仍然允许”。