drag方法中的orientation参数有什么作用? 此外,当我改变持续时间和/或步数时,它没有那么大的差异
vc.device.drag(开始,结束,持续时间,步骤,方向):
答案 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版本,您可以在源代码中看到。
如上所述,步骤目前已被忽略。