1.滑动---TouchAction  支持相对坐标、绝对坐标、Element

注意看顶部的导入TouchAction这个库..

#实例化
action = TouchAction(driver)
#press 其实位置 wait从起点滑动到终点的滑动时间 move_to终点位置 release滑动完成
action.press(x=0.5,y=0.7).wait(ms=5000).move_to(x=0.5,y=0.1).release()
action.perform() #完成

TouchAction支持相对坐标和绝对坐标上下两种都是可行的,或者:

#实例化
action = TouchAction(driver)
#press 起点位置 wait从起点到终点的滑动时间 move_to终点位置 release滑动完成
action.press(x=346,y=985).wait(ms=5000).move_to(x=346,y=200).release()
action.perform() #完成

那么:如果是类似解锁九宫格的滑动呢...so ez啦,把第一个终点当成起点继续给我滑就O了!

#实例化
action = TouchAction(driver)
#press 起点位置 wait从起点到终点的滑动时间 move_to终点位置 release滑动完成
action.press(x=346,y=985).wait(ms=5000).move_to(x=346,y=200).wait(ms=500).move_to(xxx).wait(ms=500).move_to(xxx).wait(ms=500).move_to(xxx).release()
action.perform() #完成

2.长按元素两种方式

    直接修改上面代码,既然是长按--那么就是说---起点坐标等于终点坐标所以:

    

#实例化
action = TouchAction(driver)
#press 其实位置 wait从起点滑动到终点的滑动时间 move_to终点位置 release滑动完成
action.press(x=0.5,y=0.7).wait(ms=5000).move_to(x=0.5,y=0.7).release()
action.perform() #完成发送指令到服务器

    那么在深入理解一下---既然是长按----那么只有起点坐标--和滑动时间--不给他终点时间呢----是不是说就是按下去之后--等着就可以了--所以不给终点坐标也是OK的!

#实例化
action = TouchAction(driver)
#press 其实位置 wait从起点滑动到终点的滑动时间 move_to终点位置 release滑动完成
action.press(x=0.5,y=0.7).wait(ms=5000)..release()
action.perform() #完成

3.单击  tap——也支持相对坐标和绝对坐标

  • Driver.tap([(100,100)])或者Driver.tap([(0.1,0.2)])---这是一种单击方式,这个贼简单了...直接拿着用就妥了
  • so使用 TouchAction呢?    讲道理肯定是可以的

    

#实例化
action = TouchAction(driver)
#press 其实位置 wait从起点滑动到终点的滑动时间 move_to终点位置 release滑动完成
action.tap([(100,100)]).release()
action.perform() #完成

结果:如下图所示,很明显凉了啊  兄碟---

提示:没有属性id ,感觉这个报错有点骚--看的不是太懂,但是讲道理应该是可以的,so....我看了一波源码---发现,如下图所示,,,很明显是支持的...但是需要给出x和y坐标的key----so-----tap在TouchAction下的用法和直接用是不一样的,

Too  so  :TouchAction+tap点击改一下语法,给出X,Y坐标的key,如下所示:

结果:很舒服--OK的

代码:

#实例化
action = TouchAction(driver)
#press 其实位置 wait从起点滑动到终点的滑动时间 move_to终点位置 release滑动完成
action.tap(x=0.13,y=0.31).release()
action.perform() #完成

那么问题又来了--这个可以单击,那么搞一个tow击可以不?

结果:还是很明显可以的--

备注:有位大兄弟问我,他是按照这个写的,但是一直点击......我这里是写的点击二十次...是为了把指针打开之后方便看到效果.....

所以:TouchAction用法

滑动:

#实例化
action = TouchAction(driver)
#press 其实位置 wait从起点滑动到终点的滑动时间 move_to终点位置 release滑动完成
action.press(x=0.5,y=0.7).wait(ms=5000).move_to(x=0.5,y=0.1).release()
action.perform() #完成

长按:

#实例化
action = TouchAction(driver)
#press 其实位置 wait从起点滑动到终点的滑动时间 move_to终点位置 release滑动完成
action.press(x=0.5,y=0.7).wait(ms=5000)..release()
action.perform() #完成

点击:

#实例化
action = TouchAction(driver)
#press 其实位置 wait从起点滑动到终点的滑动时间 move_to终点位置 release滑动完成
action.tap(x=0.13,y=0.31).release()
action.perform() #完成

双击:

#实例化
action = TouchAction(driver)
#press 其实位置 wait从起点滑动到终点的滑动时间 move_to终点位置 release滑动完成
action.tap(x=0.13,y=0.31,count=20).release()
action.perform() #完成

备注:再次建议新手打开开发者选项里面的  指针位置,打开之后点击屏幕会出现如图所示的坐标,后续的手机操作,你可以直接看到代码是否执行...

那么TouchAction的用法还有其他吗......

事实上真的还以用来搞点事情:

比如---appium自带的那个 叫啥来着 scroollIntoview....好像是这么拼的..就是一个滑动查找元素的方法--不知道其他人用这个是否稳定...反正我第一点是记不住这个单词...第二点是感觉滑动起来不太稳定..所以我自己用TouchAction封装了一个简单粗暴的滑动查找元素的方法--后面应该会讲到滑动查找元素...

8.0 TochAction各种用法的更多相关文章

  1. UICollectionView在Swift3.0中的用法

    UICollectionView在Swift3.0中的用法 UICollectionView的初始化跟OC中是相似的,创建 GameView 集成自 UICollectionView .注意不同于UI ...

  2. JS版微信6.0分享接口用法分析

    本文实例讲述了JS版微信6.0分享接口用法.分享给大家供大家参考,具体如下: 为了净化网络,整顿诱导分享及诱导关注行为,微信于2014年12月30日发布了<微信公众平台关于整顿诱导分享及诱导关注 ...

  3. OAuth2.0理解和用法

    现在网络的资料到处都是,很容易搜索到自己想要的答案.但答案通常只能解决自己一部分的问题.如果自己想要有一套自己的解决方案,还得重新撸一遍靠谱. 我需要学下OAuth2.0吗? 没看之前以为OAuth2 ...

  4. UIWebView内嵌网页 Xcode7.0以后的用法

    UIWebView* webPage=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, screenWidth, screenHeight-64)]; ...

  5. Microsoft ACE OLEDB 12.0概念及用法

    首先需要清楚几个概念: Database engine(数据引擎):一些预先存储于数据库中的组件: Microsoft JET (Joint Engine Technology):Microsoft ...

  6. cocos2dx 2.0 CCScrollView的用法以及滑动的原理

    #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" USING_N ...

  7. [moka学习笔记]yii2.0 rules的用法(收集,不定期更新)

    public function rules(){ return [ ['title','required','message'=>'标题不能为空'], ['title','string','mi ...

  8. ds.Merge 与 ds.Tables[0].Merge 的用法

    DataSet ds = new DataSet(); SqlConnection conn = new SqlConnection(ConnectionStr);            SqlCom ...

  9. Asp.Net MVC 2.0 Filter基本用法

    在这一节里,大家一同学习下mvc 2.0中的filter,简单的说,filter就是标记在action上的一些属性,来实现对action的控制. mvc2.0中主要包括以下filter 1. Auth ...

随机推荐

  1. java json和对象互转

    开发过程中遇到一些对象转string和string转对象的问题,浪费了很久,现在用的熟练些了,总结如下: 1.字符串尽量定义成json可解析的,如{"name":"a&q ...

  2. Git使用(一)

    声明: 第一次使用git,只能保证我的方法可以用,肯定不是最简最好的.以后需要用到更多的用法的时候再来这里更新. 说实话,记下来主要是因为自己记性不好,各种配置记不住,都是当备忘录用的,(囧囧囧囧囧) ...

  3. Android学习笔记_16_添加多个Activity、参数传递、请求码和结果码使用

    一.添加新的Activity步骤: 第一步:新建一个继承Activity的类,如:NewActivity public class NewActivity extends Activity { @Ov ...

  4. Javascript 基础汇总

    1 javascript字符串 属性:.length  计算字符串长度 转义字符 \     \n 换行 \r 回车 字符串断行 需要使用反斜杠  \ 2 字符串方法 charAt(n)  返回指定索 ...

  5. Integer大小比较问题

    public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { Integer ...

  6. 记录JavaScript的util.js类库

    工作中用到的, 不断做为积累, 以后能用到. 也感谢前辈们.  定义Util对象 var MyUtil = new Object(); 从url中获取参数 //从url中获取参数 function G ...

  7. C++中vector,set,map自定义排序

    一.vector排序 vector支持cmp,就类似数组,可以直接sort. #include <iostream> #include <algorithm> #include ...

  8. ABAP术语-BW (Business Information Warehouse)

    BW (Business Information Warehouse) 原文:http://www.cnblogs.com/qiangsheng/archive/2008/01/14/1037761. ...

  9. linux下mysql主从复制,实现数据库同步

    运行环境: 查看linux版本命令:lsb_release -a 主服务器:centos release 6.5 mysql 5.6.10-log  IP:172.17.200.25从服务器:cent ...

  10. 解决Nginx: [error] open() "/usr/local/Nginx/logs/Nginx.pid" failed(2:No such file or directory)

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf