selenium打开新标签页
时间: 2025-01-09 11:56:48 浏览: 5
### 使用 Selenium 打开新标签页
当使用 Selenium 进行自动化测试或网页抓取时,有时需要在一个新的浏览器标签页中加载不同的 URL 或者执行其他操作。以下是几种实现这一目标的方法。
#### 方法一:通过发送键盘组合键 Ctrl + T 来创建新标签页
这种方法模拟了用户按下 Ctrl 和字母 t 的行为来触发浏览器新建标签的功能。具体代码如下所示:
```python
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("http://example.com")
# 发送 Ctrl + t 组合键以开启一个新的标签页
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
time.sleep(2)
# 切换至最新打开的那个窗口/标签页
new_window_handle = driver.window_handles[-1]
driver.switch_to.window(new_window_handle)
```
此方式简单直观,但依赖于特定操作系统下的快捷键设置[^2]。
#### 方法二:利用 JavaScript 注入的方式启动新标签页
另一种更为通用的做法是借助 WebDriver 提供的 `execute_script` 函数注入一段简单的 JS 脚本来完成同样的事情:
```python
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://example.com")
# 使用JavaScript语句 window.open() 创建一个空白的新标签页
driver.execute_script("window.open();")
time.sleep(2)
# 获取当前所有已知窗口句柄列表,并切换到最后一个即新开的标签页上
handles = driver.window_handles
latest_handle = handles[len(handles)-1]
driver.switch_to.window(latest_handle)
```
这种方式不局限于任何平台上的默认热键配置,因此具有更好的跨平台兼容性[^4]。
#### 方法三:直接调用 Chrome DevTools Protocol (CDP) API 实现更底层控制
对于高级开发者来说,还可以考虑采用 CDP 接口来进行更加精细的操作。不过这通常涉及到更多复杂的编程细节以及对 Chromium 内部机制的理解。
阅读全文