项目场景:

puppeteer 中 使用 page 输入 input 的时候,有可能需要清除 input 原本就有的值。


解决方案:

方案1

在浏览器环境中,使用 jquery 或者 js 直接清空 input 的值

await page.evaluate( () => document.getElementById("inputID").value = "")

请注意 这种方案只是给input的值清空了,页面有可能还有侦听事件,是不能触发的。

方案2

使用 $eval 方法,在它的回调函数中执行

await frame.$eval('inputID', el => el.value = 'xxxxx')

请注意 这种方案只是给input的值清空了,页面有可能还有侦听事件,是不能触发的。

方案3

模拟键盘删除事件,有多少字符删除多少次

const inputValue = await page.$eval('#inputID', el => el.value);
for (let i = 0; i < inputValue.length; i++) {await page.keyboard.press('Backspace');
}

方案4

模拟 input多次点击 操作,多次点击后会选中input的值,再次输入你想输入的字符

const input = await page.$('#inputID');
await input.click({ clickCount: 3 })
await input.type("xxx", { delay: 100 });

除了这几种方法外,可以熟悉键盘事件,自己创造出更好的方案

替换所有文字:

// Using page.keyboard:await page.focus('#example');
await page.keyboard.down('Control');
await page.keyboard.press('A');
await page.keyboard.up('Control');
await page.keyboard.press('Backspace');
await page.keyboard.type('foo');// Using page.evaluate:await page.evaluate(() => {const example = document.getElementById('example');example.value = 'foo';
});

添加文字

// Using page.keyboard:await page.focus('#example');
await page.keyboard.press('End');
await page.keyboard.type(' bar qux');// Using page.evaluate:await page.evaluate(() => {const example = document.getElementById('example');example.value += ' bar qux';
});

删除最后一个字符:

// Using page.keyboard:await page.focus('#example');
await page.keyboard.press('End');
await page.keyboard.press('Backspace');// Using page.evaluate:await page.evaluate(() => {const example = document.getElementById('example');example.value = example.value.slice(0, -1);
});

删除第一个字符:


// Using page.keyboard:await page.focus('#example');
await page.keyboard.press('Home');
await page.keyboard.press('Delete');// Using page.evaluate:await page.evaluate(() => {const example = document.getElementById('example');example.value = example.value.slice(1);
});

puppeteer 清空input原本的值


微信群大佬都在等着你

微信扫描二维码加入微信群,交流学习,及时获取代码最新动态。

puppeteer 清空input原本的值相关推荐

  1. JS/jQuery获取input的值和清空input的value值

    一.获取input的值 1.通过普通选择器获取 通过类选择器获取:$('.class').val() 通过id选择器获取:$(" #id").val() 2.通过标签选择器获取 $ ...

  2. js清除HTML的input数据,js 清空 input file 的值的方法

    今天在做一个利用 JS 上传本地图片的小功能时,需要在文件上传成功后,清空 file 类型的 input 元素中所选择的本地文件,以方便二次功能的调用!而这篇文章飞鸟慕鱼博客就来说一说,如果利用 js ...

  3. 清空input file中的值

    清空input file中的值 对于input type为file元素: 未选择文件之前,它是这个样子: 当选择文件名为index.html的文件后,它变成了这个样子,input元素会显示文件名信息: ...

  4. js文件上传以及js清空input file值

    最近项目中遇到文件上传的案例, 之前涉及文件上传的较少, 今天针对js文件上传的案例做一个详细的教程,方便日后查阅! 本教程从 原生JS, jQuery, 两处着手简单介绍文件上传案例 1.原生JS ...

  5. Javascript 清空input type=file 的值方法

    一般在项目中上传文件监听change事件,若两次均上传相同文件会监听不到input的改变的事件,所以用以下方法清空input的值 方法一: function clearInputFile(f){if( ...

  6. 微信小程序清空input内容

    需求说明 在有的时候,比如我们想要在点击按钮后就清空input的内容,但是官方并没有提供input清空的直接方法,博主自己亲身实践找到了一种方法. 第一步 添加input值 在我们想要改变的input ...

  7. php监听input,jQuery如何实时监听获取input输入框的值

    jQuery实时监听获取input输入框的值,在我们日常web项目开发也常需要去实现这样的功能效果.为了作出即时动作去引导浏览者,以便提高网站的用户体验感. 下面我们就结合具体的代码示例,为大家介绍j ...

  8. JS改变input的value值不触发onchange事件解决方案 (转)

    JS改变input的value值不触发onchange事件解决方案 (转) 参考文章: (1)JS改变input的value值不触发onchange事件解决方案 (转) (2)https://www. ...

  9. python input与返回值-python中使用input()函数获取用户输入值方式

    我们编写程序最终目的还是来解决实际问题,所以必然会遇到输入输出的交互问题,python中提供了input函数用来获取用户的输入,我们可以用以下程序演示. user_gender = input(&qu ...

最新文章

  1. 对ZNNT-5NM力矩传感器进行标定
  2. HCNA多区域OSPF配置
  3. erdas图像增强步骤_基于erdas的图像增强处理
  4. head first python 第二版 中文版-Head First Python 中文版
  5. canal介绍和使用docker安装canal
  6. 在VS2010里可以给JS函数添加代码提示\注释
  7. 腾讯云对象存储 python_python 云存储
  8. 萧县机器人_全国总决赛第一名!萧县杨楼的这位学生厉害了
  9. 终于有人把数据、信息、知识讲明白了
  10. upc 9325 序列本质
  11. 人脸识别sdk_开发实录:免费人脸识别SDK实现人证比对全过程
  12. js 添加事件 attachEvent 和addEventListener 的用法
  13. 领域驱动设计系列 (六):CQRS
  14. 解决Rufus不会自动下载ldlinux.sys和ldlinux.bss文件问题
  15. codevs 4093 EZ的间谍网络
  16. 什么是零信任--用户/应用/设备--识别/认证/权限/信任
  17. Git-储藏(Stashing)
  18. linux tail 命令 阿星小栈
  19. 【算法】leetcode-838 推多米诺
  20. axios中put的参数怎么传_iOS开发之如何通过PUT请求上传数据

热门文章

  1. 别人的六一兴高彩烈,我的六一苦逼的敲代码采集壁纸~
  2. 牛客网 2018年全国多校算法寒假训练营练习比赛(第二场) 题解
  3. RHM-M60型挖掘机力矩限制器/载荷指示器
  4. 信用卡逾期规模骤增多家银行降额抬门槛
  5. AOJ-AHU-OJ-6 Hero in maze(拓展)
  6. 在线查字典/汉语字典大全/字典查询网站源码开发搭建
  7. 【CVPR2022】Detecting Camouflaged Object in Frequency Domain
  8. 左益豪:用代码创造一个新世界|OneFlow U
  9. 5V升压8.4V的2A充电电路芯片-PW4202
  10. 歌谷服务套件gms_关键时刻,谷歌对外宣称“不要在Mate30安装GMS”,其实是帮华为...