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

Selenium遇预加载重定向无法加载页面,如何执行后续操作?

解决Selenium处理页面预加载重定向的问题

当目标页面在加载前立即触发重定向时,Selenium会抛出如下错误:

Message: unknown error: net::ERR_SOCKS_CONNECTION_FAILED

你的测试代码示例:

from selenium import webdriver
browser = webdriver.Chrome() 
browser.get('http://loginrequired.com/')

要在不直接访问重定向后URL的前提下,让Selenium处理重定向并执行后续操作,试试这几个方案:

方案1:修改页面加载策略

默认ChromeDriver会等待页面所有资源完全加载(normal策略),换成eager或none策略,就能提前介入重定向后的页面:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
# eager策略:等待DOM结构加载完成即可,不用等图片、样式等资源
chrome_options.page_load_strategy = 'eager'

browser = webdriver.Chrome(options=chrome_options)
browser.get('http://loginrequired.com/')

# 重定向完成后可执行操作,比如打印当前URL
print(browser.current_url)
# 定位元素、交互等后续操作...

方案2:等待重定向完成后再操作

用WebDriverWait监听URL变化,确认重定向完成后再执行后续逻辑:

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

browser = webdriver.Chrome()
original_url = 'http://loginrequired.com/'
browser.get(original_url)

# 等待URL发生变化,超时设为10秒
WebDriverWait(browser, 10).until(EC.url_changes(original_url))

# 现在可以操作重定向后的页面
print("重定向后的地址:", browser.current_url)
# 示例:定位页面元素
# target_element = browser.find_element(By.CSS_SELECTOR, '.some-class')

方案3:拦截网络请求允许重定向

通过Chrome DevTools协议拦截请求,手动允许重定向流程继续:

from selenium import webdriver

browser = webdriver.Chrome()
# 启用网络监控
browser.execute_cdp_cmd('Network.enable', {})

# 设置请求拦截规则,针对文档类请求
browser.execute_cdp_cmd('Network.setRequestInterception', {
    'patterns': [{'urlPattern': '*', 'resourceType': 'Document', 'interceptionStage': 'HeadersReceived'}]
})

# 定义拦截处理逻辑:允许所有拦截的请求继续
def handle_intercepted_request(request):
    browser.execute_cdp_cmd('Network.continueInterceptedRequest', {
        'interceptionId': request['interceptionId']
    })

browser.request_interceptor = handle_intercepted_request

browser.get('http://loginrequired.com/')
# 重定向完成后执行后续操作...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 02:17:12