8.0 TochAction各种用法

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封装了一个简单粗暴的滑动查找元素的方法--后面应该会讲到滑动查找元素...

原文地址:https://www.cnblogs.com/pythontest/p/9515316.html

时间: 2024-10-18 11:05:18

8.0 TochAction各种用法的相关文章

【COCOS2DX-游戏开发之三四】cocos2dx 3.0 TableView特殊用法:滚动时不能选择等等

cocos2dx 3.0版本TableView拍生自ScrollView,常用来做滚动列表,有几种特殊用法,不知道大家用到过没 要求:1.滚动时不能选中TableCell,非滚动状态才能选中 很简单,在TableView的delegate函数中,通过isTouchMoved()函数来判断 void WeaponSelectLayer::tableCellUnhighlight(cocos2d::extension::TableView* table, cocos2d::extension::Ta

UICollectionView在Swift3.0中的用法

UICollectionView在Swift3.0中的用法 UICollectionView的初始化跟OC中是相似的,创建 GameView 集成自 UICollectionView .注意不同于UITableView的用法,他需要用 UICollectionViewFlowLayout 来指定一些需要设置的属性,或者可以通过遵守 UICollectionViewDelegateFlowLayout 这个代理来实现.下面我用设置属性的方式来实现的,比较方便. //布局 layout.scroll

$0和$#的用法

$0的作用就是取脚本的名称,也包括路径 $#的作用是命令行脚本传参个数

Microsoft ACE OLEDB 12.0概念及用法

首先需要清楚几个概念: Database engine(数据引擎):一些预先存储于数据库中的组件: Microsoft JET (Joint Engine Technology):Microsoft Jet 数据引擎,1992年发行初版,主要运用于 Microsoft Accesss的数据连接,Jet引擎,仅能访问 Office97-2003: Microsoft ACE(Office Access Connectivity Engine ):随着Access 2007发布之后, Microso

sbt assembly 0.11.2 用法

1. 在 intellij idea 的 project[xxx-build]/project/plugins.sbt 下添加 addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2") 最新的版本是 13.0.0,assembly.sbt 和 build.sbt 写到了一起,我觉得有点乱,还不如 0.11.2 清晰,明白 2.

find -print0和xargs -0原理及用法

平常我们经常把find和xargs搭配使用,例如: find . -name "*.txt" | xargs rm 但是这个命令如果遇到文件名里有空格或者换行符,就会出错.因为xargs识别字符段的标识是空格或者换行符,所以如果一个文件名里有空格或者换行符,xargs就会把它识别成两个字符串,自然就出错了. 这时候就需要-print0和-0了. find -print0表示在find的每一个结果之后加一个NULL字符,而不是默认加一个换行符.find的默认在每一个结果后加一个'\n',

%date~0,4%和 %time~0,2%等用法详解

在windows中,有个原始并且功能强大的批处理,好像是被人遗忘了,比如博主最近在一个项目中就用到它,非常好用.今天就和博主一直来看看用批处理生动生成每日的文件夹. 为了能正确地生成每天的日期文件夹,请先将本机时间的短日期格式设置为yyyy-MM-dd. 然后就开始写bat批处理文件了,新建一个bat文件,在里面写上: @echo off F: CD dawn set date=%date% set "date=%date:/=-%" if not exist %date% ( MD

%date~0,4%和 %time~0,2%等用法详解(转)

比如在windowscmd命令行窗口执行date命令后这个环境变量的值为当前日期:2014-09-01 星期六 或2014/09/01 周六那么如下的各个操作的意义如下:%date:~0,4% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符,结果是2014(年的值)%date:~5,2%  表示指针从左向右偏移5位,然后从偏移处开始提取2位字符,结果是03(月的值)%date:~8,2%  表示指针从左向右偏移8位,然后从偏移处开始提取2位字符,结果是01(日的值)%date

MySQL workbench8.0 CE基本用法(创建数据库、创建表、创建用户、设置用户权限、创建SQL语句脚本)

原文地址:https://blog.csdn.net/zgcr654321/article/details/82156277 安装完成MySQL后,打开MySQL workbench8.0. 可以看到MySQL Connections下面是我们设置的MySQL本地登录账号,这个账号是我们在安装MySQL过程中设置的,一般命名为root,端口为3306,密码默认为空.双击进入. 要注意一点的是,在MySQL中,database(数据库)==schema(模式).在左下角schema下方区域鼠标右键