Puppeteer笔记(七):Puppeteer切换浏览器TAB页
2024-10-16 01:47:04
一、Puppeteer切换浏览器TAB页
1、browser.pages()
二、上手实例Demo
功能测试:打开www.ly.com首页,定位搜索"苏州",获取新打开页面上的搜索结果的第一个名称,并在终端输出打印出来。下面列举了两种方法供参考。
const puppeteer = require('puppeteer');
async function tab() {
//创建一个Browser浏览器实例,并设置相关参数
const browser = await puppeteer.launch({
headless: false,
defaultViewport: null,
args: ['--start-maximized'],
ignoreDefaultArgs: ['--enable-automation']
});
//创建一个Page实例
const page = await browser.newPage();
await page.goto("https://www.ly.com", {
waitUntil: 'networkidle2'
});
const searchText = await page.$('#pt__search_text');
await searchText.type('苏州');
const searchBtn = await page.$('#pt__search_btn');
await searchBtn.click();
await page.waitFor(3000);
//方法一:browser.pages(),可以获取所有打开的Page对象,可以通过遍历或筛选找到自己想获取的Page对象
const newPage = (await browser.pages())[2];
//方法二:通过browser.waitForTarget获取target
const target = await browser.waitForTarget(t => t.url().includes('https://so.ly.com/hot'));
const newPage = await target.page();
//获取搜索结果列表页第一个标题的值,并输出终端
const newPageText = await newPage.$eval('div.search_list > ul > li:nth-child(1) > div > a > h3', ele => ele.innerText);
console.log('newPageText:' + newPageText);
//关闭浏览器
await browser.close();
}
tab();
注意点:方法一中browser.pages()定位页面时,遍历时注意页面是从0开始计数的。所以定位的是第2个页面。如下图所示。
以上参考代码运行结果如下
最新文章
- Vue.js介绍样码
- JavaSript模块规范 - AMD规范与CMD规范介绍(转)
- Bootstrap结合BootstrapTable的使用,分为两种模试显示列表。 自适应表格
- UI2_UITableViewDelete
- 【原创】解决国内Android SDK无法更新问题更新
- (转)PHP 的 __FILE__ 常量
- c3p0数据源定义
- php isset — 检测变量是否设置 foreach循环运用
- VS2010+QT4.8.5 +FastReport教程
- nginx 防火墙、权限问题
- beta冲刺1
- Java虚拟机学习-对象的创建
- 洛谷 P1538 迎春舞会之数字舞蹈
- Linux学习之CentOS(一)--CentOS6.4环境搭建
- Zookeeper安装使用及JavaAPI使用
- 【转】JS常用函数整合库 lutils
- linux系统安装jdk详细配置
- Excel根据人名匹配得到编号
- python3 80行代码实现贪吃蛇
- The YubiKey NEO -- Smartcard features