如何扩展Android MonkeyRunner的触摸事件坐标以支持具有相同脚本的多个设备?

时间:2013-01-08 22:50:15

标签: android touch automated-tests monkeyrunner androidviewclient

我正在尝试编写一个monkeyrunner脚本,它将为企业用户自动安装mdm软件。该脚本将使用多个设备执行,从而实现多种屏幕尺寸和密度。

有没有办法从设备A获取参考坐标并对其进行缩放以便可以应用于其他设备?我开始从参考设备获取初始触摸坐标,在这种情况下,三星Galaxy S2具有480 x 800显示屏,屏幕密度为1.5,并在运行时根据设备计算缩放坐标。但是,RAZR Maxx HD的屏幕显示为720 x 1184(软键移除了一些高度),屏幕密度为2不适用于此方法。

是否有人对打包算法有更深入的了解,以便一台设备的坐标可以用于任何设备?

我确实使用AndroidViewClient直接访问视图按钮,但由于该脚本适用于企业最终用户,因此设备安全无法使用。

1 个答案:

答案 0 :(得分:0)

不幸的Windows行为。您可以短路viewclient.py中修改这些行的测试(在第952行附近):

@staticmethod
def __obtainAdbPath():
    '''
    Obtains the ADB path attempting know locations for different OSs
    '''

    osName = java.lang.System.getProperty('os.name')
    ...

通过

@staticmethod
def __obtainAdbPath():
    '''
    Obtains the ADB path attempting know locations for different OSs
    '''

    return """C:\Android\android-sdk\platform-tools\adb.exe"""
    osName = java.lang.System.getProperty('os.name')
    ...

虽然临时解决方法可以解决您的问题(直到Windows修复: - )。