影刀RPA 网页表单自动填充:文本框、下拉框、单选复选框的完整处理

发布时间:2026/7/23 0:31:57
影刀RPA 网页表单自动填充:文本框、下拉框、单选复选框的完整处理 影刀RPA 网页表单自动填充文本框、下拉框、单选复选框的完整处理作者林焱表单填写是网页自动化里最高频的操作。注册账号、提交申请、录入数据、搜索筛选——背后都是表单填充。但很多新手在写表单自动化的时候经常遇到文本框填了但没生效、下拉框选不上、复选框点了但没勾上、提交后表单数据是空的。这些问题90%是因为你只用了【填写输入框】和【点击】两个指令没有针对不同表单控件做正确处理。这篇文章把网页上五类常见表单控件的自动化填充方法讲全。一、文本输入框1.1 普通文本框最基本的表单控件用【填写输入框】直接填【填写输入框】 目标元素定位到输入框 填写内容变量 user_name坑1输入框有默认值没清空有些输入框带了默认值比如请输入搜索关键词直接【填写输入框】会在默认值后面追加而不是替换。解决方法填写前先清空1. 【点击】点击输入框获得焦点 2. 【模拟按键】CtrlA全选 3. 【模拟按键】Delete删除 4. 【填写输入框】填入内容或者用【填写输入框】的清空后填写选项如果有的话。坑2输入框有输入长度限制你填了20个字符但输入框只接受10个后面的被截断了。这种情况需要在填之前先检查长度或者用模拟键盘逐字输入有些输入框有实时校验粘贴会触发不了校验逻辑。1.2 密码框密码框和普通文本框的处理方式一样用【填写输入框】就行。但有个坑坑密码框有显示密码按钮有些网站密码框旁边有个眼睛图标点击后明文显示密码。如果你在密码框填写后点击了这个按钮然后又触发了某些事件可能导致密码框被清空。建议不要去点这个按钮直接填写后提交。1.3 富文本编辑器有些网站的输入框不是标准的input或textarea而是用div模拟的富文本编辑器比如Quill、TinyMCE、UEditor。这类编辑器不能用【填写输入框】因为目标不是一个input元素。处理方法方法一点击编辑区域获得焦点然后模拟键盘输入 1. 【点击】点击编辑区域 2. 【模拟按键】输入内容 方法二通过JS直接设置内容 [video(video-RBoweVmO-1784737678555)(type-csdn)(url-https://live.csdn.net/v/embed/525000)(image-https://v-blog.csdnimg.cn/asset/23da3fe1f67a47106d725406cfde9a97/cover/Cover0.jpg)(title-拼多多店群自动化上架方案)] 【执行JavaScript】 document.querySelector(.editor-content).innerHTML 要输入的内容坑富文本编辑器有延迟初始化页面加载后编辑器还没初始化完你点击编辑区域点了个寂寞。加一个【等待元素】等编辑器容器出现再等1-2秒让它初始化完。1.4 搜索联想框搜索框输入文字后会弹出联想词列表你需要从列表里选一个。1. 【填写输入框】输入搜索词 2. 【等待元素】等待联想列表出现 3. 【获取元素列表】获取联想词列表 4. 遍历列表找到匹配的项 5. 【点击】点击匹配项坑输入太快联想没出来用【填写输入框】一次性填入搜索词有些网站不会触发联想因为它监听的是键盘事件而不是值变化。改用模拟键盘逐字输入可以解决【点击】点击搜索框 【模拟按键】逐字输入搜索词每字间隔100ms 【等待元素】等联想列表出现二、下拉框Select2.1 原生Select下拉框标准HTML的select元素影刀有专门的【选择下拉框】指令【选择下拉框】 目标元素定位到select元素 选择方式按值选择 / 按文本选择 / 按索引选择 选择内容变量 target_value三种选择方式的区别按值选择选option value1中value属性为1的项按文本选择选显示文字为选项A的项按索引选择选第N个选项从0开始坑值和文本搞混了option value01北京市/optionvalue是01文本是北京市。如果你用按文本选择却传了01选不上。搞清楚你要用哪个。2.2 自定义下拉框现在很多网站不用原生select而是用divJS模拟的下拉框。这类下拉框不能用【选择下拉框】指令需要模拟手动操作1. 【点击】点击下拉框触发器展开下拉列表 2. 【等待元素】等待下拉选项出现 3. 【获取元素列表】获取所有选项 4. 遍历选项列表匹配目标文本 5. 【点击】点击匹配的选项坑1下拉列表是动态加载的点击展开后选项还没加载完【获取元素列表】拿到空列表。加一个【等待元素】等第一个选项出现。坑2选项太多需要滚动有些下拉框只渲染可视区域内的选项虚拟滚动需要滚动才能看到后面的选项。这时候不能直接遍历列表需要用JS滚动或者模拟键盘上下键1. 【点击】展开下拉框 2. 【点击】点击下拉框获得焦点 3. 循环 【模拟按键】向下箭头 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d4e557e0b0444132aef343f992738519.png#pic_center) 【获取元素文本】获取当前高亮项 如果匹配目标 → 【模拟按键】Enter2.3 级联选择器省市区联动选择就是典型的级联选择器。选了省才能选市选了市才能选区。1. 【点击】展开省级选择器 2. 【点击】选择目标省份 3. 【等待元素】等待市级选择器数据加载 4. 【点击】展开市级选择器 5. 【点击】选择目标城市 6. 【等待元素】等待区级选择器数据加载 7. 【点击】展开区级选择器 8. 【点击】选择目标区坑选了省之后市级数据还没加载省的选择触发了API请求去获取市列表但还没返回你就去点市级选择器了结果是空的。每级选择后加一个等待等下级选择器的选项加载完。三、单选框Radio单选框是一组互斥的选项选了一个其他自动取消。3.1 标准单选框【点击】 目标元素定位到目标选项的label或input坑点击了input但没触发change事件有些网站的逻辑绑在label的click事件上直接点input不生效。解决办法是点击label元素或者点击整个选项的容器div。3.2 自定义单选框用div模拟的单选框外观好看但DOM结构复杂。定位的时候不要找input typeradio要找那个自定义的容器元素。定位策略 → 找到选项文本所在的元素 → 向上找到可点击的容器 → 点击容器坑选项文本相同但值不同一组单选框里有多个选项文本一样但值不同的情况虽然不规范但确实存在。这时候不能只按文本匹配需要结合位置或value属性来定位。四、复选框Checkbox4.1 勾选单个复选框1. 【获取元素属性】获取复选框的checked属性 2. 如果没勾选 → 【点击】勾选 3. 如果已勾选 → 不操作 4. ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ab257d5ccb6549d89e9b70a5e631b5e6.png#pic_center)坑重复点击取消勾选你要勾选一个复选框但它已经是勾选状态了你又点了一下把它取消了。一定要先检查状态再决定是否点击。4.2 批量勾选需要勾选多个复选框中满足条件的项TEMU店群如何管理运营1. 【获取元素列表】获取所有复选框 2. 遍历列表 a. 【获取元素属性】获取每个复选框的值和checked状态 b. 如果值在目标列表里且未勾选 → 【点击】勾选 c. 如果值不在目标列表里且已勾选 → 【点击】取消勾选4.3 全选/反选全选 1. 【获取元素列表】获取所有复选框 2. 遍历未勾选的全部点击勾选 反选 1. 【获取元素列表】获取所有复选框 2. 遍历逐个点击已勾选的取消未勾选的勾上坑全选按钮本身也是个复选框有些表格表头的全选复选框也在你的元素列表里遍历的时候把它也点了导致逻辑混乱。需要用选择器排除掉表头的全选按钮。五、表单提交5.1 点击提交按钮最简单的方式【点击】点击提交按钮 【等待元素】等待提交成功的提示出现坑提交后页面跳转等待元素找不到提交后页面跳转到新页面你在旧页面上等元素出现当然等不到。提交后需要重新定位元素或者等URL变化。5.2 回车提交有些搜索框没有搜索按钮输入后按回车提交【填写输入框】输入搜索词 【模拟按键】Enter5.3 表单校验未通过提交后表单校验失败比如必填项没填页面显示红色错误提示。这种情况1. 【点击】点击提交 2. 【等待元素】等待1秒 3. 检查是否有错误提示元素出现 4. 如果有 → 读取错误信息记录日志 5. 如果没有 → 提交成功继续后续操作坑校验提示是toast一闪而过有些错误提示是Toast消息2秒后自动消失。如果你的等待时间太长等去检查的时候Toast已经消失了。解决方案是用【执行JavaScript】监听Toast的出现或者缩短等待时间。六、完整表单填充模板一个完整的表单填充流程模板1. 【打开网页】打开目标表单页面 2. 【等待元素】等待表单加载完成 3. 【点击】【模拟按键】清空并填写用户名 4. 【点击】【模拟按键】清空并填写密码 5. 【点击】【模拟按键】清空并填写邮箱 6. 【点击】展开省份下拉框 7. 【等待元素】等选项出现 8. 【点击】选择目标省份 9. 【等待元素】等城市选项加载 10. 【点击】展开城市下拉框 11. 【点击】选择目标城市 12. 【获取元素属性】检查同意条款复选框状态 13. 如果未勾选 → 【点击】勾选 14. 【点击】点击提交按钮 15. 【等待元素】等待成功提示 / 检查错误提示 16. 【如果】成功 → 【日志输出】表单提交成功 17. 【如果】失败 → 【日志输出】提交失败{错误信息}每一步都加了等待和检查虽然代码量多了但稳定性成倍提升。