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

使用Selenium获取当前页面URL遇到问题求助

解决Selenium无法获取当前页面URL的问题

嘿,我看到你在用Selenium打开页面时没法成功获取当前URL,咱们一步步来排查和解决这个问题~

首先先检查下:你给出的代码片段里好像漏了初始化driver和打开页面的关键步骤?如果没执行driver = webdriver.Chrome(options=chrome_options)和driver.get(vid)就去拿URL,肯定得不到正确结果哦。

接下来我整理了几个最可能导致问题的原因和对应的解决办法:

1. 页面还没加载完成就尝试获取URL

Selenium操作页面时,如果页面还在加载中(比如视频页面加载慢、存在跳转),直接调用driver.current_url可能拿到的是初始空白页或者中间跳转的URL。这时候可以用显式等待,等页面加载到预期状态再获取:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 打开页面后,等待URL包含目标域名(这里是openload.co)
WebDriverWait(driver, 15).until(
    EC.url_contains("openload.co")
)

# 再获取URL
current_url = driver.current_url
print(current_url)

2. 加载的Chrome扩展干扰了页面操作

你代码里加载了一个Chrome扩展,有些扩展可能会自动跳转页面、修改DOM或者阻塞Selenium的正常运行。可以先临时禁用扩展测试,看看是不是扩展的问题:

chrome_options = webdriver.ChromeOptions()
# 禁用所有扩展,先测试基础功能
chrome_options.add_argument("--disable-extensions")

# 如果你必须用这个扩展,后续再单独排查扩展的行为
# chrome_options.add_argument('load-extension=C:/Users/'+getpass.getuser()+'/AppData/Local/Google/Chrome/User Data/Default/Extensions/leallakffbiflfgpmamdgcojddnbfdgo...')

driver = webdriver.Chrome(options=chrome_options)
driver.get(vid)

# 等待后获取URL
current_url = driver.current_url
print(current_url)

3. Chrome用户数据目录冲突

你加载的是默认用户数据目录的扩展,有时候Selenium和本地正在运行的Chrome进程会有冲突,导致驱动没法正常控制页面。可以试试指定一个新的空目录作为用户数据目录:

chrome_options = webdriver.ChromeOptions()
# 新建一个临时目录(比如C:/Temp/ChromeProfile),避免和默认目录冲突
chrome_options.add_argument("--user-data-dir=C:/Temp/ChromeProfile")
# 再加载你的扩展
chrome_options.add_argument('load-extension=C:/Users/'+getpass.getuser()+'/AppData/Local/Google/Chrome/User Data/Default/Extensions/leallakffbiflfgpmamdgcojddnbfdgo...')

driver = webdriver.Chrome(options=chrome_options)
driver.get(vid)

current_url = driver.current_url
print(current_url)

最后给你一个完整的测试代码,你可以先跑这个验证基础功能:

from selenium import webdriver
import getpass
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

vid = 'https://openload.co/f/KgNvMOs9fws/C__Program_Files_Python36_placeholder.mp4'
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-extensions")

driver = webdriver.Chrome(options=chrome_options)
driver.get(vid)

try:
    # 等待页面加载完成,超时时间15秒
    WebDriverWait(driver, 15).until(
        EC.url_contains("openload.co")
    )
    current_url = driver.current_url
    print("当前页面URL:", current_url)
except Exception as e:
    print("等待页面加载超时或出错:", str(e))
    # 即使超时也打印当前实际URL,方便排查
    print("当前实际URL:", driver.current_url)

driver.quit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:51:08