You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动