Selenium WebDriver故障:浏览器打开但无加载,无法完成网站登录
解决Selenium+Geckodriver页面无法加载的问题
我来帮你排查这个问题,从你的描述和代码来看,主要有几个关键问题导致页面无法加载,咱们一步步解决:
1. 路径转义错误(最可能的直接原因)
你的geckodriver路径写法有问题:Windows系统下的路径反斜杠\在Python里是转义字符,比如\N会被解析成特殊字符,导致驱动程序无法被正确找到。
修复路径的三种方式:
- 用双反斜杠:把每个
\换成\\path = "D:\\New folder (2)\\geckodriver-v0.20.0-win64\\geckodriver.exe" - 用原始字符串:在路径前加
r,让Python不解析转义字符path = r"D:\New folder (2)\geckodriver-v0.20.0-win64\geckodriver.exe" - 统一用正斜杠:把所有
\换成/path = "D:/New folder (2)/geckodriver-v0.20.0-win64/geckodriver.exe"
2. 版本兼容性问题
你使用的环境是Windows7+Python2.7,版本匹配非常重要:
- Selenium版本:Python2.7只支持Selenium 3.x系列(最高版本是3.141.0),不要安装Selenium 4.x,因为它已经放弃了对Python2.7的支持。可以用命令安装正确版本:
pip install selenium==3.141.0 - Geckodriver与Firefox版本:geckodriver v0.20.0对应的Firefox版本是57~61,如果你的Firefox版本太新或太旧,都会导致驱动无法正常工作。建议你安装这个区间内的Firefox版本,或者匹配对应版本的geckodriver。
3. 修复后的测试代码
把路径修复后,用这段完整代码测试:
from selenium import webdriver from selenium.webdriver.common.keys import Keys # 这里用原始字符串写法避免转义问题 path = r"D:\New folder (2)\geckodriver-v0.20.0-win64\geckodriver.exe" driver = webdriver.Firefox(executable_path=path) driver.get("http://www.python.org") # 完整的断言语句 assert "Python" in driver.title print("页面加载成功!标题包含Python") # 记得关闭浏览器 driver.quit()
额外排查点
如果还是有问题,可以试试:
- 检查geckodriver.exe是否有权限运行:右键以管理员身份运行Python脚本,或者确保当前用户有该文件的读取执行权限。
- 手动指定Firefox路径:如果Firefox不是默认安装路径,可以在初始化时指定:
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary # 替换成你的Firefox实际安装路径 binary = FirefoxBinary(r"C:\Program Files\Mozilla Firefox\firefox.exe") driver = webdriver.Firefox(firefox_binary=binary, executable_path=path)
内容的提问来源于stack exchange,提问作者Svickie7




