python3使用ChromeDriver 如何打开新标签页

部署运行你感兴趣的模型镜像

在 Selenium 中,ChromeDriver 本身并没有直接提供一个方法来打开新的标签页,但你可以使用以下方法间接地实现这一功能。基本思路是通过 JavaScript 来在浏览器中打开一个新的标签页,并切换到新标签页。

打开新标签页的步骤

  1. 使用 driver.execute_script() 执行 JavaScript,打开一个新的标签页。
  2. 切换到新打开的标签页。
  3. 在新标签页上执行你需要的操作。

示例代码

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

# 配置 ChromeOptions
options = Options()
options.add_argument("--headless")  # 可选: 如果你希望在没有界面的情况下运行浏览器

# 启动浏览器
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)

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

# 打开一个新的标签页
driver.execute_script("window.open('https://www.youkuaiyun.com', '_blank');")

# 获取所有标签页的句柄
handles = driver.window_handles

# 切换到新打开的标签页(第二个标签页)
driver.switch_to.window(handles[1])

# 在新的标签页上执行操作,例如打印当前页面的标题
print(driver.title)

# 关闭当前标签页
driver.close()

# 切换回第一个标签页
driver.switch_to.window(handles[0])

# 在第一个标签页上执行操作
print(driver.title)

# 最后关闭浏览器
driver.quit()

代码解释

  1. 打开第一个页面

    • driver.get("https://www.youkuaiyun.com") 打开第一个页面。
  2. 打开新标签页

    • driver.execute_script("window.open('https://www.youkuaiyun.com', '_blank');") 使用 JavaScript 打开一个新的标签页,并加载 Bing 页面。
  3. 获取所有标签页的句柄

    • driver.window_handles 获取当前所有打开标签页的句柄,返回的是一个列表。
  4. 切换到新标签页

    • driver.switch_to.window(handles[1]) 切换到新标签页(handles[1] 是新标签页的句柄)。
  5. 关闭当前标签页并切换回原标签页

    • driver.close() 关闭当前标签页。
    • driver.switch_to.window(handles[0]) 切换回原来的标签页。
  6. 关闭浏览器

    • driver.quit() 关闭浏览器并结束会话。

注意事项

  • 标签页句柄window_handles 是一个包含所有标签页的句柄的列表,handles[0] 是第一个标签页,handles[1] 是第二个标签页,依此类推。
  • _blank:JavaScript 中的 window.open() 方法可以接受两个参数,第一个是 URL,第二个是打开方式(_blank 表示在新标签页中打开)。

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值