首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AndroidViewClient -无法getXY()坐标

AndroidViewClient -无法getXY()坐标
EN

Stack Overflow用户
提问于 2016-05-05 05:12:37
回答 1查看 205关注 0票数 0

我正在运行AndroidViewClient,并且能够转储完整的层次结构,但是当我尝试使用getXY()或touch()时,事情就失败了。即使是来自Get Current Focused Window Name using AndroidViewClient的解决方案也会给我一个错误。

代码语言:javascript
复制
  kwargs1 = {'verbose': True, 'ignoresecuredevice': True}
  kwargs2 = {'startviewserver': True, 'forceviewserveruse': True,
             'autodump': False, 'ignoreuiautomatorkilled': True}
  device, serialno = ViewClient.connectToDeviceOrExit(**kwargs1)
  vc = ViewClient(device, serialno, **kwargs2)
  view = vc.dump(window='-1')
  widget = vc.findViewByIdOrRaise("id/no_id/5")
  widget.useUiAutomator = False
  print widget
  # Up until here runs no problem.
  print widget.getXY() # fails.
  widget.touch() # also fails.

我的堆栈跟踪是这样的:

打印widget.getXY()

文件"/usr/local/lib/python2.7/dist-packages/androidviewclient-11.5.3-py2.7.egg/com/dtmilano/android/viewclient.py",第680行,在getXY (wvx,wvy) = self.__dumpWindowsInformation(debug=debug)中

文件"/usr/local/lib/python2.7/dist-packages/androidviewclient-11.5.3-py2.7.egg/com/dtmilano/android/viewclient.py",第798行,在__dumpWindowsInformation中

代码语言:javascript
复制
dww = self.device.shell('dumpsys window windows')

文件"/usr/local/lib/python2.7/dist-packages/androidviewclient-11.5.3-py2.7.egg/com/dtmilano/android/adb/adbclient.py",第377行,在shell中

代码语言:javascript
复制
self.__send('shell:%s' % cmd, checkok=True, reconnect=False)

文件"/usr/local/lib/python2.7/dist-packages/androidviewclient-11.5.3-py2.7.egg/com/dtmilano/android/adb/adbclient.py",第243行,在__send中

代码语言:javascript
复制
self.__checkOk()

文件"/usr/local/lib/python2.7/dist-packages/androidviewclient-11.5.3-py2.7.egg/com/dtmilano/android/adb/adbclient.py",第286行,在__checkOk中

代码语言:javascript
复制
raise RuntimeError("ERROR: %s %s" % (repr(recv), error))

RuntimeError:错误:'‘

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-06-15 14:30:49

代码语言:javascript
复制
widget = vc.findViewByIdOrRaise("id/no_id/5")
widget.useUiAutomator = False
widget.getXY() 
x = (str)widget.windows[widget.currentFocus] 
print x

上面的代码将获得显示活动的名称和屏幕的高度和宽度,如果您只需要高度和宽度,请参考下面的一个

代码语言:javascript
复制
h = device._AdbClient__getDisplayHeight("")
w = device._AdbClient__getDisplayWidth("")
print (str)(h)
print (str)(w)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37038127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档