执行set_text()方法时,可以看到调起键盘了,但输入内容到输入框时,一闪而过,没有输入成功,仍显示默认提示文案。

1、如果可以定位到元素,则直接通过set_text就可以输入

op_login_phone = d(text="请输入登录账号").set_text("18800000001")
op_login_pwd = d(text="请输入登录密码").set_text("123456")

2、如果定位不到元素,需要使用send_keys方法,以及切换输入法

# 切换输入法
d.set_fastinput_ime(True)
op_user_modify = d(className="android.view.View", index=2).send_keys("小迷糊")
d.set_fastinput_ime(False) #输入法用完记得关掉

3、有时候以上2种方式,都无法输入对应内容,猜测可能与客户端对该页面的实现方式有关,在客户端不修改情况下,可以用adb shell input的方式替换这一测试步骤的实现。
adb shell input的输入逻辑,是在聚焦点的地方输入要输入的内容;
所以在输入用户名、或密码前,先进行点击操作;

d(resourceId='com.../userId_wapper').click()
time.sleep(1)
os.system('adb shell input text {}'.format('136xxxxx'))
d(resourceId='com.../password_wapper').click()
time.sleep(1)
os.system('adb shell input text {}'.format('xxxxx'))
Logo

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

更多推荐