Selenium启动Chrome成功但无法跳转访问目标URL如何修复
问题
运行Selenium自动化代码时Chrome浏览器可正常启动,但始终无法跳转访问gmail.com,复现代码如下:
from selenium import webdriver import time driver = webdriver.Chrome("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe") time.sleep(5) driver.get('gmail.com')
错误原因
代码存在两处核心问题:
- 传入
webdriver.Chrome()的路径错误:该参数需要传入的是Chrome驱动chromedriver.exe的路径,不是Chrome浏览器本身的安装路径,路径传错会导致Selenium和启动的Chrome实例没有建立正确的控制连接,自然无法执行后续的跳转指令。另外Selenium 4及以上版本已经不支持直接把驱动路径作为位置参数传入,必须通过Service类封装后传递。 - 传入
driver.get()的URL不合法:Selenium要求传入的地址必须是带协议头的完整URL,直接写gmail.com缺少https://前缀,程序无法解析目标地址。
修复步骤
- 提前下载和本地Chrome浏览器大版本完全匹配的
chromedriver.exe,记录它的本地存放路径。 - 修正驱动初始化逻辑,高版本Selenium使用
Service类传入驱动路径。 - 给访问地址补上
https://协议前缀。 - 删除无意义的强制等待代码,
driver.get()本身会等待页面初始加载完成后再执行后续逻辑,多余的sleep只会拖慢脚本运行速度。
修复后可运行代码
from selenium import webdriver from selenium.webdriver.chrome.service import Service # 替换为你本地chromedriver.exe的实际存放路径 service = Service(executable_path="C:\\tools\\chromedriver.exe") driver = webdriver.Chrome(service=service) # 必须传入带协议头的完整URL driver.get('https://gmail.com')
如果已经把对应版本的chromedriver配置到了系统环境变量里,可以省略Service的路径配置,直接写driver = webdriver.Chrome()即可。
内容的提问来源于stack exchange,提问作者Isaac Sykes
相关产品推荐
相关产品推荐

