博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
puppeteer 填充基础表单
阅读量:7223 次
发布时间:2019-06-29

本文共 3242 字,大约阅读时间需要 10 分钟。

main.js

const pptr = require("puppeteer");const gotoUrl = "http://127.0.0.1:5500/index.html";(async () => {  const browser = await pptr.launch({    headless: false,    slowMo: 250,  });  const page = await browser.newPage();  page.on("console", msg => {    console.log(msg.text());  });  await page.goto(gotoUrl);  // 文本框  await page.type("#username", "ajanuw", { delay: 100 });  await page.type("#password", "@asd1234", { delay: 100 });  const usernameValue = await page.$eval("#username", el => el.value);  const passwordValue = await page.$eval("#password", el => el.value);  // 单选表单  await page.click("input[type=radio][name=gender]#female");  const genderValue = await page.$$eval(    "input[type='radio'][name='gender']",    els => {      return Array.from(els).filter(el => el.checked)[0].value;    }  );  // 单选select 第二个参数为option的value  await page.select("select#address", "1");  const addressValue = await page.$eval("select#address", el => el.value);  // 多选 select  await page.select("select[name=multiple]", "1", "3");  const multipleValues = await page.$eval(    "select[name=multiple]",    el => el.value  );  // 多选表单  await page.click("input[type=checkbox][name=photography]");  await page.click("input[type=checkbox][name=reading]");  const hobby = await page.$(".hobby");  const hobbyValues = await hobby.$$eval("input[type=checkbox]", els => {    els = Array.from(els);    return els.filter(el => el.checked).map(el => el.value);  });  // 文件  // await page.click("input[type=file][name=avatar]#avatar");  const fileEl = await page.$("input[type=file][name=avatar]#avatar");  fileEl.uploadFile("./a.jpg");  const avatarValue = await page.$eval(    "input[type=file][name=avatar]#avatar",    e => {      // error: e.target.files      return {        value: e.value,        name: e.files[0].name,        size: e.files[0].size,      };    }  );  // textarea  await page.type("textarea[name=introduction]", "0 error, 0 warning. :)", {    delay: 10,  });  const selfIntroductionValue = await page.$eval(    "textarea[name=introduction]",    e => e.value  );  // await page.click(".submit");  console.log({    usernameValue,    passwordValue,    genderValue,    multipleValues,    addressValue,    hobbyValues,    avatarValue,    selfIntroductionValue,  });  await browser.close();})();

index.html

      
puppeteer

地址

多选

爱好

足球
| 篮球
| 摄影
| 看书
|

头像

自我介绍

run

$ node main.jsLive reload enabled.Failed to load resource: the server responded with a status of 404 (Not Found){ usernameValue: 'ajanuw',  passwordValue: '@asd1234',  genderValue: '2',  multipleValues: '1',  addressValue: '1',  hobbyValues: [ '足球', '摄影', '看书' ],  avatarValue: { value: 'C:\\fakepath\\a.jpg', name: 'a.jpg', size: 8015 },  selfIntroductionValue: '0 error, 0 warning. :)' }

转载于:https://www.cnblogs.com/ajanuw/p/10312073.html

你可能感兴趣的文章
区块链简介
查看>>
大谷无人机将追求“才貌双全”
查看>>
量子世界的十个事实
查看>>
U-Boot启动过程完全分析
查看>>
Web性能优化工具WebPageTest(二)——性能数据
查看>>
Lucene 6.0中BooleanQuery
查看>>
数据库反规范设计
查看>>
Oracle数据库在线备份原理
查看>>
云栖科技评论第28期:高通宣布芯片内置亚马逊Alexa
查看>>
扫描二维码自动识别手机APP下载地址
查看>>
分享Ubuntu下一些很棒的软件(一)
查看>>
bootstrap-内联文本元素-改变大小写
查看>>
阿里云MaxCompute香港开服 将引入更多人工智能服务
查看>>
你的指纹还安全吗? - BlackHat 2015 黑帽大会总结 day 2
查看>>
2、SRX笔记及基础配置
查看>>
RH134 UNIT7
查看>>
硬纪元AI峰会实录|图森未来陈默:人工智能技术的商业化起点在B端
查看>>
centos下scp命令安装和使用
查看>>
类的继承、类的属性总结、类的方法总结
查看>>
linux ftp
查看>>