Auto.js文本框自动文本填充


使用环境

我老懒癌了,每天连打卡都不想打。你要说让电子产品奴役我那都可以。但是打卡这个事纯纯就是人故意给你找麻烦。


一、失败记录

在我卡住那空档我是去查过了百度和官方文档的,有input()和setText()这两种方法来设置文本,我全试了,当时一个都不能用.

二、解决方案一

其实都能填的,方法没有问题,是我在用的时候出现了操作问题.
先是input()这个方法,这个填不上一般就是因为你没有成功获取页面控件.
这里我就只放正确的填字方法了,控件获取相关请见我的另一篇文章Auto.js属性缺少时获取控件

    object.setText("我是文本a");  
    //仅为object对应的控件设置文本;
    
    setText("我是文本a"); 
     //为所有可输入控件设置文本;
// setText会替换文本,类似innerHTML效果;
//寻找第?个文本框置入字符"String",但是我尝试后无效;
setText ([i], "String");setText("String") // 置入文本"String";

三、解决方案二

obj.input(),我一开始就是用object.input()来对控件文本进行设置的,但是报错了:
说在object这个对象里找不到"input"方法.
就是这样了,不敢说能不能用.

object.input("xxx")

都不行怎么办

如果都不能用怎么办呢?
使用别的方法来作为替代,我觉得也很不错,大家可以考虑一下:

1.

在执行到需要输入的步骤时,我先使用setClip()来设置剪贴板内容(如果有动态需求就给一个变量),然后模拟触发了文本框,如此一来输入框上部会出现当前剪贴板内容,进行一次模拟点击即可。
至于你担心的跨型号适配问题,autoJs有方法专门协调脚本和不同屏幕的适配的,你可以在使用这个方法的同时搭配屏幕适配解决方案来解决问题,如果你不打算传播你的脚本仅仅是在自己的设备上使用的话,那甚至都不需要做屏幕适配,做不了的就用点击事件解决就好,虽然这看起来有些low…

2.

文本框是有一个value属性的,对应当前文本框内的内容。
获取到这个文本框之后,你或许可以尝试设置它的value属性值为你需要的值,这个肯定是能设定上的,但是可能无法同步数据到页面上。

更好的方法我已经开始寻找,我会尽量给大家一个满意的方案。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐