原文地址: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. Redhat 5 无法安装elfutils-libelf-devel-0.137问题

    http://whr25.blog.sohu.com/263584338.html 问题: RHEL5.5安装oracle11gR2的时候需要安装elfutils-libelf-devel-0.137 ...

  2. spring security原理图及其解释

    用户发出订单修改页面的请求,Access Decision Manager进行拦截,然后对比用户的授权和次页面需要的授权是不是有重合的部分,如果有重合的部分,那面页面就授权成功,如果失败就通知用户. ...

  3. ngnix

    nginx的平滑重启 博客分类: nginx nginx平滑重启  在研发过程中,修改nginx的配置文件nginx.conf是很平常的事,需要重启nginx.如果我们直接reload是有一定风险的, ...

  4. 网页JS简繁体字转换

    用法:非得加上html头 utf-8编码 其它编码无测试 head 中引用 <script language='javascript' src='zh.js'></script> ...

  5. 【iOS开发系列】cell切割线置顶

    废话不多说,直接上代码: /** * tableViewCell切割线左側置顶 < 1 > */ -(void)viewDidLayoutSubviews { if ([_tableVie ...

  6. JSON-RPC 2.0规范 翻译 中文版

    JSON-RPC 2.0规范 起源日期: 2010-03-26(基于2009-05-24的版本号) 修正: 2013-01-04 作者: JSON-RPC 工作组 <json-rpc@googl ...

  7. 豆瓣面试题strstr)

    /*(豆瓣2013面试题strstr) 有一个在给定字符串中查找子串的函数strstr, 该函数从给定的字符串src中查找substr并返回一个整数, 指明substr第一次出现的位置(从0开始计数) ...

  8. 浅谈C#中常见的委托

    一提到委托,浮现在我们脑海中的大概是听的最多的就是类似C++的函数指针吧,呵呵,至少我的第一个反应是这样的. 关于委托的定义和使用,已经有诸多的人讲解过,并且讲解细致入微,尤其是张子阳的那一篇.我就不 ...

  9. 序列化模块 json pickel shelve

    一.json  模块 1.定义 将字典.列表等内容转换成字符串的过程就是序列化. 操作的数据类型有限,但是可以支持所有编程语言操作. 2.为什么要有序列化? 1.以某种存储形式使自定义对象持久化. 2 ...

  10. 实用API大全

    有道翻译API http://fanyi.youdao.com/openapi 有道翻译API支持中英互译,同时获得有道翻译结果和有道词典结果(可能没有),返回格式为XML或JSON.   百度翻译A ...