使用AndroidViewClient长按视图

使用AndroidViewClient长按视图,android,testing,long-press,androidviewclient,Android,Testing,Long Press,Androidviewclient,如何使用模拟在视图(例如按钮)上长按?ViewClient的触摸方法总是对其输入执行简单的按下操作(即使我将type参数设置为adbClient.DOWN) 编辑: adbclient.py中的touch方法有一个类型参数,但在方法体中没有使用。在MonkeyRunner中,当类型为DOWN时,它执行长按 def touch(self, x, y, eventType=DOWN_AND_UP): self.shell('input tap %d %d' % (x, y)) 从adbcl

如何使用模拟在视图(例如按钮)上长按?
ViewClient
的触摸方法总是对其输入执行简单的按下操作(即使我将type参数设置为adbClient.DOWN

编辑:
adbclient.py
中的touch方法有一个类型参数,但在方法体中没有使用。在
MonkeyRunner
中,当类型为DOWN时,它执行长按

def touch(self, x, y, eventType=DOWN_AND_UP):
    self.shell('input tap %d %d' % (x, y))

adbclient.py

    version = self.getSdkVersion()
    if version >= 19:
        cmd = 'input keyevent --longpress %s' % name
        if DEBUG:
            print >> sys.stderr, "longPress(%s)" % cmd
        self.shell(cmd)
    else:
        raise RuntimeError("longpress: not supported for API < 19 (version=%d)" % version)
version=self.getSdkVersion()
如果版本>=19:
cmd='输入键事件--长按%s'%name
如果调试:
打印>>sys.stderr,“长按(%s)”%cmd
self.shell(cmd)
其他:
raise RuntimeError(“longpress:不支持API<19(版本=%d)”%version)

API>=19支持Longpress。

来自
adbclient.py

    version = self.getSdkVersion()
    if version >= 19:
        cmd = 'input keyevent --longpress %s' % name
        if DEBUG:
            print >> sys.stderr, "longPress(%s)" % cmd
        self.shell(cmd)
    else:
        raise RuntimeError("longpress: not supported for API < 19 (version=%d)" % version)
version=self.getSdkVersion()
如果版本>=19:
cmd='输入键事件--长按%s'%name
如果调试:
打印>>sys.stderr,“长按(%s)”%cmd
self.shell(cmd)
其他:
raise RuntimeError(“longpress:不支持API<19(版本=%d)”%version)

API>=19支持Longpress。

来自
adbclient.py

    version = self.getSdkVersion()
    if version >= 19:
        cmd = 'input keyevent --longpress %s' % name
        if DEBUG:
            print >> sys.stderr, "longPress(%s)" % cmd
        self.shell(cmd)
    else:
        raise RuntimeError("longpress: not supported for API < 19 (version=%d)" % version)
version=self.getSdkVersion()
如果版本>=19:
cmd='输入键事件--长按%s'%name
如果调试:
打印>>sys.stderr,“长按(%s)”%cmd
self.shell(cmd)
其他:
raise RuntimeError(“longpress:不支持API<19(版本=%d)”%version)

API>=19支持Longpress。

来自
adbclient.py

    version = self.getSdkVersion()
    if version >= 19:
        cmd = 'input keyevent --longpress %s' % name
        if DEBUG:
            print >> sys.stderr, "longPress(%s)" % cmd
        self.shell(cmd)
    else:
        raise RuntimeError("longpress: not supported for API < 19 (version=%d)" % version)
version=self.getSdkVersion()
如果版本>=19:
cmd='输入键事件--长按%s'%name
如果调试:
打印>>sys.stderr,“长按(%s)”%cmd
self.shell(cmd)
其他:
raise RuntimeError(“longpress:不支持API<19(版本=%d)”%version)

API>=19支持Longpress。

我现在就找到了问题的答案。我们可以使用拖动方法模拟视图上的长按。示例代码如下所示:

buttonText = 'ClMe'
button = vc.findViewWithText(buttonText )
(x,y) = button.getXY()
button.device.drag((x,y), (x,y), 2000, 1)

我现在就找到了问题的答案。我们可以使用拖动方法模拟视图上的长按。示例代码如下所示:

buttonText = 'ClMe'
button = vc.findViewWithText(buttonText )
(x,y) = button.getXY()
button.device.drag((x,y), (x,y), 2000, 1)

我现在就找到了问题的答案。我们可以使用拖动方法模拟视图上的长按。示例代码如下所示:

buttonText = 'ClMe'
button = vc.findViewWithText(buttonText )
(x,y) = button.getXY()
button.device.drag((x,y), (x,y), 2000, 1)

我现在就找到了问题的答案。我们可以使用拖动方法模拟视图上的长按。示例代码如下所示:

buttonText = 'ClMe'
button = vc.findViewWithText(buttonText )
(x,y) = button.getXY()
button.device.drag((x,y), (x,y), 2000, 1)

您是否尝试了
longPress()
方法而不是
press()
?是的。我对它进行了测试,但不知道为什么它与press()方法类似。嗯,让我们问问@dtmilano。我刚刚通过Google+把这个分享给他。你试过
longPress()
方法而不是
press()
?是的。我对它进行了测试,但不知道为什么它与press()方法类似。嗯,让我们问问@dtmilano。我刚刚通过Google+把这个分享给他。你试过
longPress()
方法而不是
press()
?是的。我对它进行了测试,但不知道为什么它与press()方法类似。嗯,让我们问问@dtmilano。我刚刚通过Google+把这个分享给他。你试过
longPress()
方法而不是
press()
?是的。我对它进行了测试,但不知道为什么它与press()方法类似。嗯,让我们问问@dtmilano。我刚刚通过Google+把这个分享给他。谢谢米兰。我认为这种方法不适用于按钮和其他视图。我怎样才能用这个来模拟长时间按下按钮呢?谢谢米兰。我认为这种方法不适用于按钮和其他视图。我怎样才能用这个来模拟长时间按下按钮呢?谢谢米兰。我认为这种方法不适用于按钮和其他视图。我怎样才能用这个来模拟长时间按下按钮呢?谢谢米兰。我认为这种方法不适用于按钮和其他视图。我如何使用这个来模拟长时间按下按钮?