初始化Firefox Selenium WebDriver时程序挂起,我的配置是否正确?
解决Selenium启动Firefox后挂起、无法加载配置文件的问题
嘿,这个问题我之前也碰到过!核心原因是你用的Selenium和Firefox版本完全不兼容——Selenium 2.53.6是比较老的版本,而Firefox 58已经切换到了GeckoDriver驱动架构,旧版Selenium对这个支持很差,这才导致启动时加载配置文件失败、程序挂起。
下面给你几个针对性的解决步骤:
第一步:升级Selenium到兼容版本
Selenium 2.x系列对GeckoDriver的支持不完善,建议直接升级到3.x的稳定版本,比如3.141.0(这个版本和Firefox 58兼容性很好)。执行以下命令升级:pip install selenium==3.141.0第二步:配置GeckoDriver
Firefox 57及以上版本必须依赖GeckoDriver才能和Selenium配合工作,你需要:- 下载对应版本的GeckoDriver:Firefox 58适合搭配v0.20.1版本的GeckoDriver(这个版本支持Firefox 55-59)
- 把GeckoDriver的可执行文件路径添加到系统环境变量中,或者在代码里直接指定路径
第三步:修改初始化Driver的代码
升级Selenium后,需要调整代码来适配GeckoDriver,示例代码如下:from selenium import webdriver from selenium.webdriver.firefox.firefox_binary import FirefoxBinary # 如果你需要指定Firefox安装路径(根据你的系统调整) binary = FirefoxBinary('/Applications/Firefox.app/Contents/MacOS/firefox') # 指定GeckoDriver的路径 driver = webdriver.Firefox(firefox_binary=binary, executable_path='/path/to/geckodriver') if ATTACK_REDDIT: driver.get("http://mywebsite.com")额外排查:查看Firefox日志
按照报错提示,你可以通过指定log_file来获取更详细的Firefox启动日志,帮你定位具体问题:binary = FirefoxBinary(log_file=open('firefox_debug.log', 'w')) driver = webdriver.Firefox(firefox_binary=binary)
另外,如果你暂时不想升级Selenium,也可以尝试降级Firefox到56及以下版本(因为Firefox 57是量子版本,彻底改变了驱动方式),但这种方式不推荐,毕竟旧版本浏览器存在安全风险。
内容的提问来源于stack exchange,提问作者SomethingsGottaGive
相关产品推荐
相关产品推荐

