原文地址:http://blog.csdn.net/qqtMJK/article/details/77838814

今天做自动化解锁9宫格,发现swipe不能满足需求,于是用TouchAction去实现手势滑动,这里先给出我写的代码:

TouchAction(self.driver).press(x=299, y=744).wait(100)\
.move_to(x=483, y=0).wait(100)\
.move_to(x=-483, y=501).wait(100)\
.move_to(x=483, y=0).wait(100).release().perform()

根据UIAutomatorViewer抓到的坐标,我的坐标滑动需求是(299,744)—>(782,744)—>(299,1245)—>(782,1245)

这个走势也就是一个“Z”字形的解锁路线。

这里给出move_to的代码:

def move_to(self, el=None, x=None, y=None):
"""Move the pointer from the previous point to the element or point specified
"""
self._add_action('moveTo', self._get_opts(el, x, y)) return self

然后我执行我的代码之后还是报错:

The coordinates provided to an interactions operation are invalid.

提示说我的坐标无效,但是我确实填写的没有问题。然后我去翻看appium服务的log:

从log看出,前面的坐标操作都是没有问题的,“Z”字可以正常画出来,但是最后touchUp的时候失败了,居然识别

的是一个中间的偏移坐标值做touchUp,正好我这个偏移值还是负数,不在bounds里面,所以提示出错了。

这里先不讨论原因,我改动代码之后就OK了,我贴出改动后的代码:

TouchAction(self.driver).press(x=299, y=744).wait(100)\
.move_to(x=483, y=0).wait(100)\
.move_to(x=-483, y=501).wait(100)\
.move_to(x=483, y=0).wait(100).release().wait(100).perform()

标红的地方就是改动点,我仅仅是在release()后面加了一个wait就保证了touchUp正常执行

就能正常在最后一个点touchUp。

具体原因我不在此详细分析,感兴趣的可以去分析appium底层是怎么执行的

appium九宫格解锁错误提示:The coordinates provided to an interactions operation are invalid解决办法的更多相关文章

  1. MySQL提示:The server quit without updating PID file问题的解决办法(转载)

    MySQL提示:The server quit without updating PID file问题的解决办法 今天网站web页面提交内容到数据库,发现出错了,一直提交不了,数找了下原因,发现数据写 ...

  2. IIS关于“ 配置错误 不能在此路径中使用此配置节”的解决办法

    IIS关于“ 配置错误 不能在此路径中使用此配置节”的解决办法 原文链接:http://www.cnblogs.com/200325074/p/3679316.html 今天刚安装好IIS8.5, 我 ...

  3. 重启mysql提示:The server quit without updating PID file问题的解决办法

    今天因为需要开启事件调度器event_scheduler,所以修改了mysql的配置文件/etc/my.cnf 就因为配置多了个分号,导致一直启动失败,如下图所示: 然后去网上搜了帖子(MySQL提示 ...

  4. HTTP 错误 500.19 请求的页面的相关配置数据无效 解决办法

    "HTTP 错误 500.19 请求的页面的相关配置数据无效" 解决办法   HTTP 错误 500.19 - Internal Server Error无法访问请求的页面,因为该 ...

  5. Advanced Installer 中测试数据库连接提示“未发现数据源名称并且未指定默认驱动程序”的解决办法

    原文:Advanced Installer 中测试数据库连接提示"未发现数据源名称并且未指定默认驱动程序"的解决办法 最近需要制作一个安装包,安装包的要求如下: 1.用户手工填写M ...

  6. Laravel5.5执行 npm run dev时报错,提示cross-env找不到(not found)的解决办法

    Laravel 5.4 Mix & Laravel5.5执行 npm run dev时报错,提示cross-env找不到(not found)的解决办法   首先进入package.json文 ...

  7. LiveCharts 提示框(DataTooltip)百分比一直为0.00%解决办法

    LiveCharts 提示框(DataTooltip)百分比一直为0.00%解决办法 问题描述:在使用LiveCharts 开源图标库的时候,使用CartesianChart类图表,当Series为L ...

  8. Linux进阶之VMware Linux虚拟机运行提示“锁定文件失败 虚拟机开启模块snapshot失败”的解决办法

    问题1:VMware Linux虚拟机运行提示"锁定文件失败 虚拟机开启模块snapshot失败"的解决办法 非正常关闭虚拟机(例如开关机过程中关掉VMware等操作),再次启动虚 ...

  9. appium 九宫格解锁招商银行手机客户端app

    之前研究了一段时间的appium for native app 相应的总结如下:                                            appium测试环境搭建 :ht ...

随机推荐

  1. hdu5412CRB and Queries

    动态修改求区间K大. 整体二分是一个神奇的东西: http://www.cnblogs.com/zig-zag/archive/2013/04/18/3027707.html 入门: 一般的主席树都挂 ...

  2. 利用systemtap定位ifconfig dropped数据包的原因

    http://blog.chinaunix.net/uid-20662820-id-3842431.html   欢迎转载,转载请保留文章的完整性!Author: Tony <tingw.liu ...

  3. decorate all function in all module

    需求: 有package db_api,其下有很多 module 如 plane.py ship.py ufo.py.这些module内定义了方法如 plane.fly(), ship.float() ...

  4. [WASM] Create a New Rust/Webpack Project using the rust-webpack Template

    Previous to this post, we set up our own Rust/wasm project from scratch. The Rust/wasm team ships a ...

  5. npoi 加密 https://bbs.csdn.net/topics/380226272

    终于解决了,.1.用excel新建一个文件作为模板,可以是空内容,在excel中对文件进行加密,如密码为:12345. 2.在NPOI读取前,调用:Biff8EncryptionKey.Current ...

  6. 【转载】java sleep和wait的区别的疑惑?

    首先,要记住这个差别,"sleep是Thread类的方法,wait是Object类中定义的方法".尽管这两个方法都会影响线程的执行行为,但是本质上是有区别的. Thread.sle ...

  7. SpringMVC框架下使用jfreechart绘制折线图,柱状图,饼状图

    java代码 @Controller public class CityAction { @Autowired private CityBiz cityBiz; //柱状图 @RequestMappi ...

  8. 查询历史使用过的命令并使用(history)

    一.什么是history 在bash功能中.它能记忆使用过的命令,这个功能最大的优点就是能够查询以前做过的举动.从而能够知道你的执行步骤.那么就能够追踪你曾下达过的命令.以作为除错的工具. 二.His ...

  9. HDU 6061 RXD and functions NTT

    RXD and functions Problem Description RXD has a polynomial function f(x), f(x)=∑ni=0cixiRXD has a tr ...

  10. 关于yum的一些基本的东西

    1 sqlite数据库的使用 第一,某个centos版本的包相关的信息都放在一个服务器端的sqlite数据库文件中,yum会下载到本地,进行包安装的时候用. 第二,安装的历史记录放在sqlite数据库 ...