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

如何使用Selenium获取浏览器第二个标签页的URL?

解决Selenium获取新标签页URL的问题

问题出在:Selenium默认会将焦点保持在最初打开的标签页上,哪怕新标签页已经打开,驱动的上下文仍停留在原标签页,所以driver.current_url返回的始终是第一个页面的地址。

要获取第二个标签页的URL,需要手动切换到新标签页的窗口句柄,具体步骤如下:

  1. 在触发新标签页打开的操作后,等待新窗口加载完成(确保窗口数量变为2)
  2. 获取所有窗口的句柄列表
  3. 切换到第二个标签页的句柄
  4. 再获取当前URL

修改后的关键代码片段

# 点击打开新标签页的操作
driver.execute_script("arguments[0].click();", waitWD.until(EC.element_to_be_clickable((By.XPATH, f'(//a[contains(text(), "Double E")])[{1}]'))))    

# 等待新标签页加载,确保窗口数量变为2
waitWD.until(EC.number_of_windows_to_be(2))

# 获取所有窗口的句柄列表
window_handles = driver.window_handles

# 切换到第二个标签页(列表索引从0开始,第二个标签页对应索引1)
driver.switch_to.window(window_handles[1])

# 现在获取的就是新标签页的URL
currentURL = driver.current_url

print(currentURL)
input("Press!")

如果之后需要切回原来的标签页,只需执行:

driver.switch_to.window(window_handles[0])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 12:00:14