UiAutomator - 如何知道某个坐标是否存在物体

时间:2016-07-19 19:58:33

标签: uiautomator

我想知道如果在Android设备的主屏幕上有特定坐标(例如(100,100))的小部件,是否可以使用UiAutomator API来确定。

是否有任何现有方法可以帮助我确定这一点?

1 个答案:

答案 0 :(得分:-1)

AndroidViewClient/culebra实现ViewClient.findViewsContainingPoint(),它返回包含指定点的视图列表。

使用culebra生成脚本并在最后添加此调用以查找(544, 567)处的观看次数为您提供类似的内容

#! /usr/bin/env python
# -*- coding: utf-8 -*-
'''
Copyright (C) 2013-2016  Diego Torres Milano
Created on 2016-07-19 by Culebra v11.5.9
                      __    __    __    __
                     /  \  /  \  /  \  /  \ 
____________________/  __\/  __\/  __\/  __\_____________________________
___________________/  /__/  /__/  /__/  /________________________________
                   | / \   / \   / \   / \   \___
                   |/   \_/   \_/   \_/   \    o \ 
                                           \_____/--<
@author: Diego Torres Milano
@author: Jennifer E. Swofford (ascii art snake)
'''


import re
import sys
import os

from com.dtmilano.android.viewclient import ViewClient

TAG = 'CULEBRA'

_s = 5
_v = '--verbose' in sys.argv


kwargs1 = {'ignoreversioncheck': False, 'verbose': False, 'ignoresecuredevice': False}
device, serialno = ViewClient.connectToDeviceOrExit(**kwargs1)
kwargs2 = {'forceviewserveruse': False, 'useuiautomatorhelper': False, 'ignoreuiautomatorkilled': True, 'autodump': False, 'startviewserver': True, 'compresseddump': True}
vc = ViewClient(device, serialno, **kwargs2)
vc.dump()
print vc.findViewsContainingPoint((544,567))

如果你想使用UiAutomator在Java中实现它,只需复制实现,因为所有内容都可以或多或少地重现。