Puppeteer笔记(七):Puppeteer切换浏览器TAB页
时间:2020-05-22
本文章向大家介绍Puppeteer笔记(七):Puppeteer切换浏览器TAB页,主要包括Puppeteer笔记(七):Puppeteer切换浏览器TAB页使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、Puppeteer切换浏览器TAB页
1、browser.pages()
二、上手实例Demo
功能测试:打开www.ly.com首页,定位搜索"苏州",获取新打开页面上的搜索结果的第一个名称,并在终端输出打印出来。下面列举了两种方法供参考。
1 const puppeteer = require('puppeteer'); 2 async function tab() { 3 //创建一个Browser浏览器实例,并设置相关参数 4 const browser = await puppeteer.launch({ 5 headless: false, 6 defaultViewport: null, 7 args: ['--start-maximized'], 8 ignoreDefaultArgs: ['--enable-automation'] 9 }); 10 //创建一个Page实例 11 const page = await browser.newPage(); 12 await page.goto("https://www.ly.com", { 13 waitUntil: 'networkidle2' 14 }); 15 const searchText = await page.$('#pt__search_text'); 16 await searchText.type('苏州'); 17 const searchBtn = await page.$('#pt__search_btn'); 18 await searchBtn.click(); 19 await page.waitFor(3000); 20 //方法一:browser.pages(),可以获取所有打开的Page对象,可以通过遍历或筛选找到自己想获取的Page对象 21 const newPage = (await browser.pages())[2]; 22 //方法二:通过browser.waitForTarget获取target 23 const target = await browser.waitForTarget(t => t.url().includes('https://so.ly.com/hot')); 24 const newPage = await target.page(); 25 //获取搜索结果列表页第一个标题的值,并输出终端 26 const newPageText = await newPage.$eval('div.search_list > ul > li:nth-child(1) > div > a > h3', ele => ele.innerText); 27 console.log('newPageText:' + newPageText); 28 //关闭浏览器 29 await browser.close(); 30 } 31 tab();
注意点:方法一中browser.pages()定位页面时,遍历时注意页面是从0开始计数的。所以定位的是第2个页面。如下图所示。
以上参考代码运行结果如下
原文地址:https://www.cnblogs.com/wuweiblogs/p/12918923.html
- 数据库中间件 Sharding-JDBC 源码分析 —— JDBC实现与读写分离
- Pytorch 0.3.0 发布:新增张量函数,支持模型移植
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 执行
- PhalGo-初识PhalGO
- 【学术】如何在神经网络中选择正确的激活函数
- PhalGo-Echo路由
- PhalGo-介绍
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— 分布式主键
- [喵咪Golang(2)]安装和Helloworld
- LSTM的简单介绍,附情感分析应用
- 使用实体嵌入的结构化数据进行深度学习
- Otter-入门篇3(Node搭建)
- PhalGo-Respones
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 改写
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Spark Core项目实战 | 页面单跳转化率统计
- Chrome DevTools 全攻略!助力高效开发
- 终于有人把 Docker 讲清楚了,别再说不会 Docker 了!
- 如何在ggplot2图形上添加显著性差异注释?
- 动态曲线图(linechart)--Matplotlib绘制
- 分布式事务、分布式锁、分布式session
- Redis为什么变慢了?常见延迟问题定位与分析
- PyTorch Trick集锦
- client-go 之 Indexer 的理解
- 你的登录接口真的安全吗?
- Python,你真的会使用 staticmethod 和 classmethod 吗?
- GitLabCI/CD自动集成和部署到远程服务器
- istio-cni详解
- 【Pytorch 】笔记八:Tensorboard 可视化与 Hook 机制
- K近邻算法:以"同类相吸"解决分类问题!