AI摘要
使用 Selenium 启动 Chrome 时地址栏显示 data:;,通常因版本不兼容或路径错误。解决方法是显式指定浏览器和驱动路径,并添加 --remote-debugging-port=9222 参数以建立调试连接。
使用 Selenium 编写爬虫时,Chrome 能够被启动,但没有正常打开目标网址,地址栏显示为 data:;。
现象分析
data:; 是 Chrome 打开的一个空白 Data URL。它本身不是报错页面,而是浏览器启动后尚未完成目标导航时可能出现的临时页面。因此,排查重点不在这个地址本身,而在 ChromeDriver 是否成功创建 WebDriver 会话,以及 driver.get(url) 是否顺利执行。
一次正常的启动过程如下:
Python 脚本 -> ChromeDriver -> Chrome 浏览器 -> driver.get(url) -> 目标页面其中,ChromeDriver 负责启动 Chrome 并与其建立自动化控制连接;Selenium 再通过 ChromeDriver 发送导航命令。浏览器与驱动版本不兼容、可执行文件路径错误或调试连接异常,都可能使流程停在浏览器已弹出、页面却没有正常加载的阶段。
解决方法
为 Chrome 显式指定浏览器路径和 ChromeDriver 路径,并添加远程调试端口参数:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
url = "https://example.com"
options = webdriver.ChromeOptions()
options.add_argument("--remote-debugging-port=9222")
options.binary_location = r"D:\\Chrome\\Chrome.exe"
service = Service(r"D:\\Chrome\\chromedriver.exe")
driver = webdriver.Chrome(service=service, options=options)
try:
driver.get(url)
finally:
driver.quit()--remote-debugging-port=9222 会让 Chrome 开放一个本地调试端口;在部分启动异常的环境中,显式设置该参数可以帮助 ChromeDriver 与浏览器建立调试连接。
代码中的几个配置分别承担不同职责:
| 配置 | 作用 |
|---|---|
options.binary_location | 指定要启动的 Chrome 可执行文件,适用于浏览器未安装在默认路径的情况。 |
Service(...) | 指定并管理 ChromeDriver 进程。 |
--remote-debugging-port=9222 | 指定 Chrome 的 DevTools 调试端口,便于调试连接。 |
driver.get(url) | 在 WebDriver 会话建立成功后发起实际页面导航。 |




