@anikikun 不好意思现在在回帖,这个方法之前已经是不行的,现在因为工作原因暂时没时间去研究解决方法,之后有遇到类似问题再研究下
学习了,谢谢分享
@happystone keyEvent() 是可以的,但获取不了长度还是不太方便。
非常感谢你的热心回答
根据你的第一条回复,表示稍微能理解你的意思,但希望能指导下出现的原因
根据你的第二条回复,第一个编辑框弹出的是数字键盘,第二个编辑框弹出的普通的 26 字母那种键盘,且键盘非内部开发键盘
@happystone 按照你的方法试了也是不行,光标总会定位到文本前面
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: setText
info: [debug] [BOOTSTRAP] [debug] Using element passed in.
info: [debug] [BOOTSTRAP] [debug] Attempting to clear using UiObject.clearText().
info: [debug] [BOOTSTRAP] [debug] Text remains after clearing, but it appears to be hint text.
info: [debug] [BOOTSTRAP] [debug] Text not cleared. Assuming remainder is hint text.
info: [debug] [BOOTSTRAP] [debug] Sending plain text to element: 15.........(纯数字)
info: [debug] [BOOTSTRAP] [debug] Returning result: {"value":true,"status":0}
以上是普通编辑框 clear() 后再 send_keys(‘15*********’) appium 端输出的信息,这个可以成功清除文本且正确输入指定的文本
info: [debug] [BOOTSTRAP] [debug] Got command of type ACTION
info: [debug] [BOOTSTRAP] [debug] Got command action: setText
info: [debug] [BOOTSTRAP] [debug] Using element passed in.
info: [debug] [BOOTSTRAP] [debug] Attempting to clear using UiObject.clearText().
info: [debug] [BOOTSTRAP] [debug] Sending plain text to element: ‘text_replace’
info: [debug] [BOOTSTRAP] [debug] Returning result: {"value":true,"status":0}
以上是密码编辑框 clear() 后再 send_keys(‘text_replace’) appium 端输出的信息,相比于普通编辑框输出的信息缺少了:
info: [debug] [BOOTSTRAP] [debug] Text remains after clearing, but it appears to be hint text.
info: [debug] [BOOTSTRAP] [debug] Text not cleared. Assuming remainder is hint text.
感觉出错应该是 hint text 的原因,但没能明白这个导致失败的原因也不知解决方法,还望指教
在此先感谢你能抽空回复我的疑问
补充一下调试设备信息 机型为红米 1 Android 版本为 4.4.2
有预览版么?
@happystone 你好,“pwdtext2"是我要清除掉的文本内容,input 不是输入么?
刚才我在 pwdtext2 = passEdit.get_attribute('text') 这行代码下面打印 pwdtext2 的 type 和 len,输出类型为 Unicode,长度为 0,我想问一下是通过 element.get_attribute('text') 获取编辑框的文本内容对吧?
@anikikun
def edittextclear(self,text):
self.driver.keyevent(123)
for i in range(0,len(text)):
self.driver.keyevent(67)
你好,首先非常感谢你的回复。
我按照你说明的方法找到以上方法,然后通过下方的代码使用
passEdit = self.driver.find.......获取控件
passEdit.click()
pwdtext2 = passEdit.get_attribute('text')
self.edittextclear(pwdtext2)
passEdit.send_keys('POMI12')
但仍然出现帖子里描述的问题