在自动化脚本中如何自动输入文本?
我们在编写自动化脚本过程中经常要用到自动输入文本,比如自动填写表格功能等。一般来说只要人工可以手动输入文本的,都可以用脚本实现自动输入文本,比如android.widget.EditText等。输入文本方法如下:
一、使用粘贴实现输入文本
使用粘贴来实现输入文本是最常用的方法,适用于绝大部分情况。使用
paste函数来实现。注意,如果不成功的话,可以先点击该控件,让其获取焦点后再粘贴,type参数在'set'和'paste'都尝试下。
var ret = findView('cn:com.android.EditText');
if (ret.length > 0) {
paste(ret.views[0], '谢谢!', {afterWait: 3000});
}
paste('cn:com.android.EditText', '谢谢!', {afterWait: 3000});
二、使用间接方式输入文本
有的时候我们会发现有少许app的android.widget.EditText无法直接使用paste函数来粘贴文本,或者输入框根本就不是EditText。此时我们可以使用先把文本复制到系统,然后再长按控件弹出菜单,点击粘贴按钮把文本自动输入到目标控件中// 此步骤如果粘贴不成功,则系统会把粘贴的内容自动复制到系统缓存
paste('cn:android.widget.TextView', '粘贴的内容');
// 让目标控件处于焦点
click('cn:android.widget.TextView');
// 长按目标控件,弹出菜单
click('cn:android.widget.TextView', {isLongClick: true});
// 查找粘贴按键并点击
var root = findRoot('txt:粘贴');
if (null != root) {
var ret = findView('txt:粘贴', {root: root});
if (ret.length > 0) {
click(ret.views[0], {click: true});
}
}