如何在AndroidViewClient中或通过任何其他编程方法滚动精确的像素数

时间:2016-10-23 22:18:46

标签: android androidviewclient

到目前为止,我只能使用

  

adb shell输入触摸屏滑动

使用adb和

的方法
  

device.drag()

来自AndroidViewClient的

方法。

然而,

两者都采取了速度"作为参数,输出与CPU时钟速度以及目标设备后台运行的进程非常相关。 我需要一些模拟触摸屏幕,将其固定到位并轻扫,然后停止移动然后被抬起的东西。这些方法不起作用。 MonkeyRunner应该可以通过使用DOWN和UP事件来做到这一点,但它对我来说也不起作用 - 我不断得到Broken pipe异常(我读到它是常见的,因为MonkeyRunner是bug)。

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

我尝试过这个脚本(由culebra生成)

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


import re
import sys
import os


try:
    sys.path.insert(0, os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
except:
    pass

from com.dtmilano.android.viewclient import ViewClient

TAG = 'CULEBRA'

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


serialno = sys.argv[1]
duration = int(sys.argv[2])

kwargs1 = {'ignoreversioncheck': False, 'verbose': False, 'ignoresecuredevice': False}
device, serialno = ViewClient.connectToDeviceOrExit(serialno=serialno, **kwargs1)

device.dragDip((301.33, 140.67), (143.33, 400.67), duration, 20, 0)

我刚刚添加了serialnoduration参数,以便能够测试不同的组合。

只是为了看到更改持续时间的效果,您可以使用像这样的绘图应用程序

enter image description here