【问题标题】:AndroidViewClient: view not found errorAndroidViewClient:未找到视图错误
【发布时间】:2017-04-25 07:20:00
【问题描述】:

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

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

【问题讨论】:

    标签: androidviewclient


    【解决方案1】:

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

    search.touch()
    

    你应该调用

    vc.dump(window='-1')
    

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

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

    【讨论】:

      猜你喜欢
      • 2016-10-24
      • 2013-01-17
      • 2012-04-29
      • 2017-09-04
      • 2018-01-25
      • 2017-07-10
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      相关资源
      最近更新 更多