修改poco源码,完成double_click()

        最近因为工作原因,在看一个app自动化框架airtest,然后发现其中采用的poco双击功能不可用。网上的说法就是没有实现这个接口,至于为什么我也不知道。

然后看了下源码,发现其实比较简单调用的是touch,所以只需要实现该方法就好了,其功能和click一样,就是调用touch的时候,加参数times=2即可。

        修改之前先做备份保存,然后只需要修改四个文件。       

        1在自己所安装的python文件夹中找到Lib\site-packages\poco\proxy.py  文件添加代码

    def double_click(self, focus=None, sleep_interval=None):
        focus = focus or self._focus or 'center'
        pos_in_percentage = self.get_position(focus)
        self.poco.pre_action('double_click', self, pos_in_percentage)
        ret = self.poco.double_click(pos_in_percentage)
        if sleep_interval:
            time.sleep(sleep_interval)
        else:
            self.poco.wait_stable()
        self.poco.post_action('double_click', self, pos_in_percentage)
        return ret

  2在 Lib\site-packages\poco\pocofw.py  文件中添加

    def double_click(self, pos):
        if not (0 <= pos[0] <= 1) or not (0 <= pos[1] <= 1):
            raise InvalidOperationException('Click position out of screen. pos={}'.format(repr(pos)))
        ret = self.agent.input.double_click(pos[0], pos[1])
        self.wait_stable()
        return ret

3在\Lib\site-packages\poco\utils\airtest\input.py  文件中添加

    def double_click(self, x, y):
        pos = self.get_target_pos(x, y)
        touch(pos, duration=self.default_touch_down_duration,times=2)

4在Python310\Lib\site-packages\poco\pocofw.py

    def double_click(self, x, y):
        raise NotImplementedError

然后调用poco的double_click()方法就可以了,其实可以看出,touch,方法多了个参数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值