puppeteer常规操作代码段

news/2024/11/28 11:41:53/

目录

一、获取界面二维码并打印处理

二、等待某个元素消失后 再进行操作

三、使用puppteer点击搜索框,并输入内容后点击搜索


一、获取界面二维码并打印处理

const puppeteer = require('puppeteer');async function findQRCodeByXPath() {const browser = await puppeteer.launch();const page = await browser.newPage();await page.goto('https://example.com');const xPath = '//img[contains(@class, "qrcode")]'; // 替换为实际的 XPath 表达式const qrcodeElements = await page.$x(xPath);if (qrcodeElements.length > 0) {const qrcodeHandle = await page.evaluateHandle((el) => el.getAttribute('src'), qrcodeElements[0]);const qrcodeData = await qrcodeHandle.jsonValue();console.log('二维码:', qrcodeData);// 在这里可以进行二维码的处理} else {console.log('没有找到二维码');}await browser.close();
}findQRCodeByXPath();

二、等待某个元素消失后 再进行操作

const puppeteer = require('puppeteer');async function waitForPopupToDisappearAndScroll() {const browser = await puppeteer.launch();const page = await browser.newPage();await page.goto('https://example.com');const popupSelector = '.popup'; // 替换为实际弹框元素的 CSS 选择器try {await page.waitForSelector(popupSelector, { timeout: 5000 });// 弹框出现,等待其消失await page.waitForSelector(popupSelector, { hidden: true, timeout: 5000 });console.log('弹框已消失');// 执行其他滑动界面操作await page.evaluate(() => {// 执行滑动操作的代码});} catch (error) {console.log('没有弹框');}await browser.close();
}waitForPopupToDisappearAndScroll();

三、使用puppteer点击搜索框,并输入内容后点击搜索

//1. 使用 Puppeteer 打开页面:const puppeteer = require('puppeteer');const main = async () => {const browser = await puppeteer.launch();const page = await browser.newPage();await page.goto('https://example.com'); // 替换为目标网页 URL// 执行后续操作
};main();// 2. 点击搜索框并输入关键字:// 在相应的选择器上执行点击操作
await page.click('input[name="search"]');
// 等待一定时间,确保搜索框被激活
await page.waitForTimeout(1000); // 1秒
// 在相应的选择器上执行输入操作
await page.type('input[name="search"]', '关键字');// 3. 等待结果出现并滑动界面到底:// 等待搜索结果出现,这里使用简单的等待时间,也可以根据实际情况使用更复杂的等待条件
await page.waitForTimeout(3000); // 3秒while (true) {// 滑动到底部await page.evaluate(() => {window.scrollTo(0, document.body.scrollHeight);});// 等待一小段时间,让页面加载内容await page.waitForTimeout(1000); // 1秒// 检查是否已经滑动到底部(可以根据页面元素,如底部加载提示等判断)const isEndReached = await page.evaluate(() => {// 检查页面是否已经滑动到底部的逻辑,例如:// return document.querySelector('#load-more-button') === null;// 如果你有特定的元素表示已经到达底部,请适配对应的逻辑});if (isEndReached) {break;}
}


http://www.ppmy.cn/news/1077413.html

相关文章

【元宇宙】智能手机万岁

凭借出色的新设备,我们很快就能进人元字宙,想象这样的情景是很趣的。但是,至少到21世纪20年代,元宇宙时代的大多数设备很可能是我们已经在使用的设备。 AR 和 VR 设备不仅面临重大的技术、财务和体验障碍,而且它们在上…

英语写作中“扩大”、“扩展”extend、expand、enlarge的用法

(本系列文章例句均属原创,无引用。) 一、extend是指扩大范围,在科技论文写作中常用于描述研究范围、作用范围、影响范围的扩大,例如: The authors extended their work to a wider area.(作者…

164到网络安全面试大全(附答案)

最近有不少小伙伴跑来咨询: 想找网络安全工作,应该要怎么进行技术面试准备?工作不到 2 年,想跳槽看下机会,有没有相关的面试题呢? 为了更好地帮助大家高薪就业,今天就给大家分享两份网络安全工…

深圳产品展示视频拍摄一站式服务

产品展示视频拍摄一站式服务是指一家专业的拍摄制作公司或团队提供从策划、拍摄到后期制作的全方位服务,以满足客户的产品展示需求。这种服务通常包括以下方面,由产品展示视频制作公司老友记小编从以下几个方面为您整理: 1.策划和预制阶段&a…

带纽扣电池产品出口澳洲安全标准,纽扣电池IEC 60086认证

澳大利亚政府公布了《消费品(纽扣/硬币电池)安全标准》和《消费品(纽扣/硬币电池)信息标准》。届时出口纽扣/硬币电池以及含有纽扣/硬币电池产品到澳大利亚的供应商,必须遵守这些标准中的要求。 一、 安全标准及信息标…

“金九”行情如期而至?六大券商看市

八月最后一个交易日,股指小幅低开震荡后逐波下行,成交量有所萎缩。市场仍处于对管理层组合政策的消化过程之中。热点主要集中在芯片领域。 展望九月,机构认为,当前市场已处于底部阶段,对于基本面及风险的悲观定价已经…

关于Android 中双list数据复制问题

1、基本类型的数据 没有hashcode 直接add 2、包含bean数据类型的list 间相互复制 不管是addall 还是 add 如: list1.add(list2.get(1)); 如果数据类型包含bean, debug会发现数据其实指向是一样的 当list2中数据修改时,list1中的数…

Java设计模式:一、六大设计原则-02:开闭原则

文章目录 一、定义:开闭原则二、模拟场景:开闭原则2.0 工程结构2.1 定义面积计算接口2.2 面积计算实现类 三、违背方案:开闭原则四、改善代码:开闭原则4.1 扩展继承4.2 单元测试 一、定义:开闭原则 开闭原则&#xff…