自动填写表单时经常遇到的问题汇总

文档创建者:自动控制
浏览次数:3156
最后更新:2022-08-17
功能分类
数据监测: -
数据录入: 基本表单填写 
自动控制:  
人工智能:  
数据接口:  
数据分析:  
1、明明已经完成填写,表单输入框内显示填写的内容,提交不成功,提示该项目未填写,怎么回事?
      原因分析:木头浏览器自动填表原理是改变输入框元素的属性,比如填写文本框,实际上是修改“input”元素的“value”属性值。如果输入框绑定了js事件,这些事件是不会被触发执行的,这些事件会改变填写标志位的值,提交时检测到标志位未改变就认为未填写。
      解决方案1:填表完成前后主动触发绑定事件的执行,常用事件有blur、change、input、click等。
      解决方案2:使用木头浏览器模拟键盘按键操作,相当于人工填写。
2、遇到js下拉列表框怎么选择?
      原因分析:下拉列表元素select使用简单,但样式比较古板,很多网页表单为追求美观或动画效果,使用HTML+JS自已做下拉列表,也不固定使用什么元素,可能包含div/span/ul/li等。这样就给自动填表带来很多麻烦,也没有办法以固定的模式应对。
      解决方案1:在浏览器中手工反复选择不同的选项,观察源码的变化。查找XX元素的YY属性就是选项的值时,自动填表时直接设置修改XX元素的YY属性为选项值就可以了。
      解决方案2:使用木头浏览器点击步骤完全模拟人工选择的过程,先点击元素使之弹出下拉列表框,然后再点击对应的选项即可。有些表单也可以在不弹出下拉列表的情况下,直接点击选项元素。
3、级联下拉列表框,没有下拉选项怎么办?
      原因分析:比如在填写地址过程中,需要按顺序选择省、市、县区。如果没有选择省的情况下,市和县区是空的不能选择。当选择省后,会触发change事件,该事件脚本会自动加载该省所有市的选项。
      解决方案1:如果是Select下拉列表元素,在填写完“省”的时候,触发change事件代码,也可能是blur事件;并延时1秒左右,等脚本加载“市”所有选项后,再选择“市”,同样触发change或blur事件继续加载“县区”选项。
      解决方案2:使用模拟键盘按键操作,先获取下拉选择框元素,软件自动让该元素获得焦点,再模拟按下“”键,选择第几个就按几次,最后按键空格或回车键确认选项。相当于手工使用键盘操作,一般会触发相应的事件。
      解决方案3:使用模拟鼠标点击操作,先获取下拉选择框元素,使用鼠标左键点击弹出下拉选项,然后获取选项元素,再用左键点击一次。与人工使用鼠标选择一样,会触发绑定的事件代码。
4、选择不同的选项,会引发后续填表项目变化的表单怎么填写?
      原因分析:比如一张体检表,姓别选择“男”时,出现男性体检项目,选择“女”时,后续填表内容变为女性体检项目。
      解决方案1:如果木头浏览器自动选择姓别时,表单后续填表项目无变化,说明没有触发绑定的js事件,一般只需要在填写姓别时设置触发blur、change或click事件即可。
      解决方案2:可以不做姓别判读,当作此表单包含男女所有体检项目来填写。如果表单输入框不存在造成填写失败,也不影响其它项目填写。
      解决方案3:在填写完姓别后,使用木头浏览器变量监控判断男女,从而选择不同的分支执行不同的填表步骤。
5、输入日期类型数据时,会弹出日期选择框,怎样自动选择?
      原因分析:在表单中直接填写日期比较麻烦,且日期格式比较多。为简化操作并统一日期格式,一般表单使用js选择日期方式填写。这样简化了手工操作,却给自动填表带来麻烦。
      解决方案1:有些表单即支持选择日期,也支持手工输入填写,那么设置直接按格式输入就行了,即使不支持手工直接输入的表单,只要能获取到输入框,按同样的方式也可以自动填写日期。如果表单隐藏了日期输入框限制手工填写,那么从源码中找到输入框也可以自动填写。
      解决方案2:如果表单日期填写项找不到输入框,或者自动输入后无法提交时,可以使用木头浏览器模拟人工点击步骤来填写,先点击日期控件,应设置等待0.1秒,弹出日期选择框后,依次点击年月日完成填表。

未完待续……









您需要登录后才可以回帖 登录 | 现在注册

本版积分规则

返回顶部 返回列表