Python + selenium 如何打开新标签页并请求新的 url?

如题。可以打开标签页,但是获取不到新标签页的句柄,driver.window_handles 只能获取一个句柄。没有新标签页的句柄,所以再次请求的时候还是只能在当前页,求大神帮忙。


Python + selenium 如何打开新标签页并请求新的 url?
5 回复

换个问题,打开一个网页之后,再打开别的网页会变的很慢很慢,不知道什么情况,所以我才想能不能操作两个标签页,这样就避免打开两个窗口。


driver.execute_script 开新标签页最直接。先打开一个空白页,再切过去加载你要的URL就行。

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

# 启动浏览器
driver = webdriver.Chrome()

# 先打开第一个页面
driver.get("https://www.example.com")

# 用JavaScript打开新标签页
driver.execute_script("window.open('');")

# 获取所有窗口句柄,新开的是最后一个
handles = driver.window_handles
driver.switch_to.window(handles[-1])

# 在新标签页中加载目标URL
driver.get("https://www.google.com")

# 切回第一个标签页(如果需要)
# driver.switch_to.window(handles[0])

核心就两步:window.open('') 开空白页,然后 switch_to.window 切过去操作。句柄列表里新开的窗口总是在最后,用 handles[-1] 就能拿到。

简单说就是JS开窗,Selenium切换。

你是怎么打开新标签页的
试过用 js 打开吗

我用的 ie11,js 打开不了。

本来不用这么麻烦的,只是打开一个网页之后,再打开一个网页会变的很慢,不知道是什么原因。

回到顶部