java多线程    Java入门    vsftp    ftp    linux配置    centos    FRP教程    HBase    Html5缓存    webp    zabbix    分布式    neo4j图数据库    

Puppeteer 模拟自动填写输入框提交

一个晴朗的下午,有个非常好的朋友问我,谁发明了验证码这玩意,我说自从有了机器人这个东西,就有了验证码,验证码是确认访问者不是机器人。要不然机器人能干很多坏事呢。

node.js 的算法会升级变化。
1.模拟chrome打开我的主页java-er.com
2.模拟人工输入一个词google
3.提交搜索得到搜索结果。

const puppeteer = require('puppeteer');
function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

(async () => {
	//const browser = await puppeteer.launch();

	const browser = await puppeteer.launch({
      headless:false //设置成false 会触发浏览器打开,完整的看到机器人工作的过程。
  	});

	const page = await browser.newPage();
	page.setDefaultNavigationTimeout(9980000);
	await page.goto('https://java-er.com/blog');
	await page.setViewport({
		width: 1280,
		height: 2200
	});
	await sleep(1000);
	
	await page.screenshot({path: '1.png',fullpage:true});

	console.log("打开首页");

	await page.tap("#s"); //直接操作dom选择器,是不是很方便
	console.log("1");
	//await page.type("google");
	await page.type('input[id=s]', 'google', {delay: 20})

	console.log("2");
	console.log("开始搜索");
	await page.screenshot({path: '2.png'});
	await page.tap("#searchsubmit");
	console.log("点击搜索");
	await sleep(3000);
	await page.screenshot({path: '3.png'});
	await browser.close();
})();


This entry was posted in WEB前端 and tagged , , , . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/puppeteer-input-text-auto/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.

Leave a Reply