puppeteer获取打开的链接,打开新连接,切换tab
方法有很多种:
1.browser.pages()可以获取所有打开的Page对象,可以通过遍历或筛选找到自己想获取的Page对象
//获取地址为‘http://woleigequ.net/’的Page对象
let pageList = await browser.pages();
let newPage = pageList.filter(item=>item.url() == 'http://woleigequ.net/')[0]
2.通过browser.waitForTarget获取target
//获取地址为‘http://woleigequ.net/’的Page对象
const target = await browser.waitForTarget(t=>t.url() == 'http://woleigequ.net/')
const newPage = await target.page();
3.browser.on(‘targetcreated’)
await page.goto('woleigequ.net'); // 打开woleigequ.net
await page.waitForSelector('#goto'); // 等待并获取点击跳转的goto元素
const link = await page.$('#goto');
const newPagePromise = new Promise(x => browser.once('targetcreated', target => x(target.page()))); // 声明变量
await link.click(); // 点击跳转
const newPage = await newPagePromise; // newPage就是a链接打开窗口的Page对象
拿到了Page对象,那就可以使用page.bringToFront()将tab切换到该Page了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?