AndroidViewClient:查找未找到错误

时间:2016-09-12 07:01:45

标签: androidviewclient

我正在尝试使用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'))

即使存在具有确切文本的视图,也会引发视图未找到错误。

如果我转储窗口,它会起作用:

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

谁能告诉我为什么这是必要的?我怎么认识到我必须在找到视图之前转储窗口,任何提示?

1 个答案:

答案 0 :(得分:2)

每次你做一些改变屏幕的事情就像

一样
search.touch()

你应该调用

vc.dump(window='-1')

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

此外,您可以使用culebra -G启动Culebra GUI并指向并点击UI表示以生成脚本,该脚本将在需要时生成dump()