如何使用 uiautomator 填写表单中的所有字段
How to fill all fields from a form with uiautomator
目前我正在尝试使用 Python + uiautomator
填写表单中的所有字段
我的代码:
d = UIDevice(adb.deviceList[0].device)
last_item_exists = d(text='Memo').exists
while not last_item_exists:
print "Searching for fields on screen"
fields = d(className = 'android.widget.EditText', focusable = True)
for field in fields:
if not (field.text == '0' or field.text == '50'): #Skip fields with 0 or 50
print "Writing on the field"
field.click()
d.press(0x0000001d, 0x00001000)
d.press('del')
field.set_text('50')
else:
print "Skipping field"
print "Searching for Memo field"
last_item_exists = d(text='Memo').exists
print "Scrolling down"
d(scrollable=True).fling()
d(text='Confirm').click()
问题:
根据设备分辨率,可能会出现此错误:
uiautomator.JsonRPCError: JsonRPC Error code: -32002, Message: com.android.uiautomator.core.UiObjectNotFoundException: UiSelector[CLASS=android.widget.EditText, INSTANCE=9, FOCUSABLE=true, RESOURCE_ID=com.salab.ABRT:id/task_info_item_count]
发生这种情况,因为当我单击最后一个可见字段时,屏幕有时会向下滚动一点并且顶部字段不再可见。
是否有解决此类问题的方法,或者我必须改变我的逻辑(现在无法考虑任何事情...)?
UiAutomator 只会看到屏幕上每时每刻可见的内容。因此,如果您向下滚动(或应用程序向下滚动),则它无法与之交互。
你要么改变你的逻辑,要么你上下滑动屏幕来验证是否所有内容都已填满,如果没有,请填满。
目前我正在尝试使用 Python + uiautomator
填写表单中的所有字段我的代码:
d = UIDevice(adb.deviceList[0].device)
last_item_exists = d(text='Memo').exists
while not last_item_exists:
print "Searching for fields on screen"
fields = d(className = 'android.widget.EditText', focusable = True)
for field in fields:
if not (field.text == '0' or field.text == '50'): #Skip fields with 0 or 50
print "Writing on the field"
field.click()
d.press(0x0000001d, 0x00001000)
d.press('del')
field.set_text('50')
else:
print "Skipping field"
print "Searching for Memo field"
last_item_exists = d(text='Memo').exists
print "Scrolling down"
d(scrollable=True).fling()
d(text='Confirm').click()
问题:
根据设备分辨率,可能会出现此错误:
uiautomator.JsonRPCError: JsonRPC Error code: -32002, Message: com.android.uiautomator.core.UiObjectNotFoundException: UiSelector[CLASS=android.widget.EditText, INSTANCE=9, FOCUSABLE=true, RESOURCE_ID=com.salab.ABRT:id/task_info_item_count]
发生这种情况,因为当我单击最后一个可见字段时,屏幕有时会向下滚动一点并且顶部字段不再可见。
是否有解决此类问题的方法,或者我必须改变我的逻辑(现在无法考虑任何事情...)?
UiAutomator 只会看到屏幕上每时每刻可见的内容。因此,如果您向下滚动(或应用程序向下滚动),则它无法与之交互。
你要么改变你的逻辑,要么你上下滑动屏幕来验证是否所有内容都已填满,如果没有,请填满。