AndroidViewClient中device.drag方法的参数是什么?

时间:2017-05-19 15:48:30

标签: drag androidviewclient

drag方法中的orientation参数有什么作用? 此外,当我改变持续时间和/或步数时,它没有那么大的差异

vc.device.drag(开始,结束,持续时间,步骤,方向):

1 个答案:

答案 0 :(得分:1)

看一下源代码(最好的开源代码):

def drag(self, (x0, y0), (x1, y1), duration, steps=1, orientation=-1):
    '''
    Sends drag event in PX (actually it's using C{input swipe} command).

    @param (x0, y0): starting point in PX
    @param (x1, y1): ending point in PX
    @param duration: duration of the event in ms
    @param steps: number of steps (currently ignored by @{input swipe})
    @param orientation: the orientation (-1: undefined)
    '''

    self.__checkTransport()
    if orientation == -1:
        orientation = self.display['orientation']
    (x0, y0) = self.__transformPointByOrientation((x0, y0), orientation, self.display['orientation'])
    (x1, y1) = self.__transformPointByOrientation((x1, y1), orientation, self.display['orientation'])

    version = self.getSdkVersion()
    if version <= 15:
        raise RuntimeError('drag: API <= 15 not supported (version=%d)' % version)
    elif version <= 17:
        self.shell('input swipe %d %d %d %d' % (x0, y0, x1, y1))
    else:
        self.shell('input touchscreen swipe %d %d %d %d %d' % (x0, y0, x1, y1, duration))

另外,请记住,AndroidViewClient和culebra的主要目标之一是生成可以在各种条件下运行的测试,而不仅仅是生成它们时存在的测试。您可以在不同的设备,屏幕或分辨率上运行相同的测试。此外,您可以在不同的方向下运行相同的测试,并且您不希望测试受到该事实的影响,然后在生成测试时方向

持续时间使用情况取决于Android版本,您可以在源代码中看到。

如上所述,

步骤目前已被忽略。