AndroidViewClient:视图未找到错误

AndroidViewClient: view not found error

我正在尝试使用 AndroidViewClient 在 youtube 中搜索视频。

package = 'com.google.android.youtube'
activity = 'com.google.android.apps.youtube.app.WatchWhileActivity'

component = package + "/" + activity

device, serialno = ViewClient.connectToDeviceOrExit()
device.startActivity(component=component)

vc = ViewClient(device, serialno)

search = vc.findViewWithContentDescriptionOrRaise(
    re.compile(u'''Search'''))
search.touch()

search = vc.findViewWithTextOrRaise(re.compile(u'Search\ YouTube'))
search.type('hello')
device.press('KEYCODE_ENTER')

行:

search = vc.findViewWithTextOrRaise(re.compile(u'Search\ YouTube'))

即使存在包含准确文本的视图,也会引发未找到视图错误。

如果我转储 window:

vc.dump(window='-1')
search = vc.findViewWithTextOrRaise(re.compile(u'Search\ YouTube'))

谁能告诉我为什么这是必要的?我如何识别我必须在找到视图之前转储 window,有什么提示吗?

每次你做一些改变屏幕的事情,比如

search.touch()

你应该调用

vc.dump(window='-1')

刷新屏幕的内部表示,并能够搜索以前不存在的新视图或与之交互。

另外,您可以使用culebra -G启动Culebra GUI并点击UI表示生成脚本,需要时会生成dump() .