You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中Selenium无法加载网页的技术问题求助

Selenium无法导航至目标网页问题排查与解决

问题描述

在基于Python+Selenium的网页自动化项目中,运行官方基础示例脚本时出现异常:Chrome窗口能正常打开,但无法导航到目标网页。脚本运行无报错,但功能完全未按预期执行。

环境信息

  • Selenium版本:4.1.0
  • Chrome版本:120.0.6099.71(64位官方版)
  • ChromeDriver版本:Chrome for Testing v120.0.6099.71
  • 操作系统:Windows 11 23H2

尝试过的脚本

原始脚本

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get("https://www.selenium.dev/selenium/web/web-form.html")

title = driver.title

driver.implicitly_wait(0.5)

text_box = driver.find_element(by=By.NAME, value="my-text")
submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")

text_box.send_keys("Selenium")
submit_button.click()

message = driver.find_element(by=By.ID, value="message")
text = message.text

driver.quit()

添加异常处理的修改版脚本

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Initialize the webdriver with the chromedriver executable path
driver = webdriver.Chrome()

try:
    driver.get("https://www.selenium.dev/selenium/web/web-form.html")

    # Use WebDriverWait to wait for the elements to be present
    text_box = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.NAME, "my-text"))
    )

    submit_button = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, "button"))
    )

    # Perform actions
    text_box.send_keys("Selenium")
    submit_button.click()

    # Wait for the message element to be present
    message = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "message"))
    )

    text = message.text
    print("Message:", text)

finally:
    # Make sure to quit the driver in the finally block to ensure it is closed
    driver.quit()

解决方法

1. 升级Selenium版本

你的Selenium版本4.1.0与Chrome 120存在兼容性风险,直接升级到最新版:

pip install --upgrade selenium

新版Selenium内置ChromeDriver自动管理功能,无需手动配置环境变量,会自动匹配对应版本的驱动,避免版本不兼容问题。

2. 禁用代理或调整Chrome启动参数

ChromeDriver可能继承系统代理导致网络异常,尝试禁用代理启动:

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--no-proxy-server')
driver = webdriver.Chrome(options=chrome_options)

也可以添加其他参数绕过安全限制:

chrome_options.add_argument('--disable-web-security')
chrome_options.add_argument('--disable-extensions')
chrome_options.add_argument('--start-maximized')

3. 验证网页可访问性

手动在Chrome中打开目标网址https://www.selenium.dev/selenium/web/web-form.html,确认是否能正常加载。如果手动也无法访问,优先排查网络问题(如DNS、防火墙);如果手动能访问,再聚焦Selenium配置。

4. 查看ChromeDriver日志定位问题

开启日志记录,获取导航失败的具体原因:

driver = webdriver.Chrome(service_log_path='chromedriver.log')

运行脚本后查看生成的chromedriver.log文件,里面会包含DNS解析、连接超时等具体错误信息,帮助精准排查。

内容的提问来源于stack exchange,提问作者Adatta1276

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 05:02:41