Appium--swipe滑动方法
最近公司要求对APP模块自动化,以Android 自动化为例,把appium滑动的方法swipe()再小结下。滑动的目的,一方面是为了更好的查找元素,一方面就是为了滑屏操作。代码如下:
package Util; import static Util.log.Console.infoLog; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import org.openqa.selenium.OutputType; import ObjectFactory.DriverFactory; import Util.log.Console; import io.appium.java_client.AppiumDriver; import io.appium.java_client.TouchAction; import java.time.Duration; public class SwipScreen { private AppiumDriver<?> driver = DriverFactory.getAppiumDriver(); // 向上滑动 public void swipUp(int t, int num) { File screen = driver.getScreenshotAs(OutputType.FILE); try { BufferedImage bufferedImage = ImageIO.read(screen); int width = driver.manage().window().getSize().width; int height = driver.manage().window().getSize().height; Duration duration = Duration.ofSeconds(t / 1000); Console.infoLog("this screen is: " + "width:" + width + ", " + "height:" + height); TouchAction action1 = new TouchAction(driver); for(int i= 0; i < num; i++) { action1.press(width / 2, height * 3 / 4).waitAction(duration).moveTo(width / 2, height / 4).release(); action1.perform(); } } catch (IOException e) { e.printStackTrace(); } } // 向下滑动 public void swipDown(int t, int num) { File screen = driver.getScreenshotAs(OutputType.FILE); try { BufferedImage bufferedImage = ImageIO.read(screen); int width = bufferedImage.getWidth(); int height = bufferedImage.getHeight(); Duration duration = Duration.ofSeconds(t / 1000); Console.infoLog("width:" + width + ", " + "height:" + height); TouchAction action1 = new TouchAction(driver); for(int i = 0; i < num; i++) { action1.press(width / 2, height / 4).waitAction(duration).moveTo(width / 2, height * 3 / 4).release(); action1.perform(); } } catch (IOException e) { e.printStackTrace(); } } // 向右滑动 public void swipRight(int t, int num) { File screen = driver.getScreenshotAs(OutputType.FILE); try { BufferedImage bufferedImage = ImageIO.read(screen); int width = bufferedImage.getWidth(); int height = bufferedImage.getHeight(); Duration duration = Duration.ofSeconds(t / 1000); Console.infoLog("this screen is: " + "width:" + width + ", " + "height:" + height); TouchAction action1 = new TouchAction(driver); for(int i = 0; i < num; i++) { action1.press(width/20, height / 2).waitAction(duration).moveTo(width*3/ 4, height / 2).release(); action1.perform(); } } catch (IOException e) { e.printStackTrace(); } } // 向左滑动 public void swipLeft(int t, int num) { File screen = driver.getScreenshotAs(OutputType.FILE); try { BufferedImage bufferedImage = ImageIO.read(screen); int width = bufferedImage.getWidth(); int height = bufferedImage.getHeight(); Duration duration = Duration.ofSeconds(t / 1000); Console.infoLog("this screen is: " + "width:" + width + ", " + "height:" + height); TouchAction action1 = new TouchAction(driver); for(int i = 0; i < num; i++) { action1.press(width*3/4, height / 3).waitAction(duration).moveTo(width / 20, height / 3).release(); action1.perform(); } } catch (IOException e) { e.printStackTrace(); } } }
已经封装了滑动的方法,直接使用即可
import Util.SwipScreen; SwipScreen swip = new SwipScreen(); swip.swipDown(300,1);
这里的 swipDown就是向下滑动,现在很多app页面流行的下拉刷新,或者下拉增量刷新。300 和1分别是int t 和int num,t是这里是填写毫秒数,这里的 毫秒数越小 滑动的速度越快,一般设定在500~1000。如果你想快速滑动 那就可以设置的更加小。Num是指滑动的次数,如app首页会有很多屏或者滑动到列表底部。就直接输入次数即可。滑动完之后记得睡眠下,然app加载好再做其他事情。
滑动API:Swipe(int start x,int start y,int end x,int y,duration)
int start x-开始滑动的x坐标;
int start y -开始滑动的y坐标 ;
int end x -结束点x坐标;
int end y -结束点y坐标;
duration 滑动时间(默认5毫秒)。
Appium--swipe滑动方法的更多相关文章
- Appium处理滑动方法是swipe
滑动API:Swipe(int start x,int start y,int end x,int y,duration) 解释: int start x-开始滑动的x坐标:int start y - ...
- appium 处理滑动的方法
appium 处理滑动的方法是 swipe(int start-x, int start-y, int end-x, int end-y, int during) - Method in class ...
- python3+Appium自动化07-滑动操作以及滑动方法封装
滑动解析 滑动主要分为:水平滑动.垂直滑动.任意方向滑动 滑动轨迹 在Appium中模拟用户滑动操作需要使用swipe方法,该方法定义如下: def swipe(self, start_x, star ...
- APPium+Python+iOS屏幕滑动方法对比
最近在学习appium自动化,对iOS手机进行滑动操作进行总结: 1.mobile:scroll;该方法在实际使用调用时,会滚动2次.执行时间很长. 向下滚动整个屏幕driver.execute_sc ...
- Python+Appium自动化测试(8)-swipe()滑动页面
app自动化测试过程中,经常会遇到滑动屏幕操作,appium框架的话我们可以使用webdriver提供的swipe()方法来对屏幕页面进行上滑.下滑.左滑.右滑操作. 一,swipe方法介绍 swip ...
- appium java 滑动(js滑动和swipe滑动)
最近有一个页面的内容很多,有的元素需要滑动到底部才能看到,所以就研究一下滑动,下面是我学习到的两种滑动方式 一:用js滑动 用js滑动的思路是很简单,首先是先定位到这个元素,定位到之后不做任何操作,然 ...
- 移动端图片轮播—swipe滑动插件
swipe是一个轻量级的移动滑动组件,它可以支持精确的触滑移动操作,能解决移动端对滑动的需求. swipe插件的使用主要有四大块: 一.html <div id='slider' class=' ...
- jquery 连写注释;siblings() 方法;jQuery 的3种滑动方法;slideUp()向上滑动;slideDown()向下滑动;slideToggle()来回滑动
首先我们看两个连写注释 第一个: /* 点击头像,显示基本资料 */ $(".f-chatTit a.avatar").click(function(){ $(this).hi ...
- jQuery 滑动方法slideDown向下滑动元素
通过 jQuery可以在元素上创建滑动效果,jQuery slideDown() 方法用于向下滑动元素. jQuery 滑动方法 通过 jQuery,您可以在元素上创建滑动效果. jQuery 拥有以 ...
- 解析6种常用View 的滑动方法
View 的滑动是Android 实现自定义控件的基础,实现View 滑动有很多种方法,在这里主要讲解6 种滑动方法,分别是layout().offsetLeftAndRight()与offsetTo ...
随机推荐
- Centos7 安装python3
Centos7 安装python3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #安装sqlite-devel yum -y ...
- 集合(list、set和map)区别
1.List,Set都是继承自Collection接口,Map则不是 2.List特点:元素有放入顺序,元素可重复:另外list支持for循环,也就是通过下标来遍历,也可以用迭代器, 3.Set特点: ...
- java同时连接db2和mysql的程序
db2的jar包安装参见:http://www.cnblogs.com/zifeiy/p/7918554.html 代码: package com.anbank.datafetch; import j ...
- fiddler实现手机抓包
对fiddler相关配置 1.允许fiddler捕获http协议,打开fiddler客户端,菜单框选择Tools->Options->HTTPS,勾选图中三项 2.允许远程连接,Tools ...
- Git的本地仓库与GitHub的远程仓库
gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub.GitHub 是目前为止最大的开源 Git 托管服务,并且还是少数同时提供公共代码 ...
- java中抽象类和接口之间的异同点
抽象类 接口 声明方式 abstratc class ClassName interface ClassName 包含内容 构造方法,普通方法,抽象方法.static方法 .变量常量 全局常量.抽 ...
- [原创]手把手教你写网络爬虫(4):Scrapy入门
手把手教你写网络爬虫(4) 作者:拓海 摘要:从零开始写爬虫,初学者的速成指南! 封面: 上期我们理性的分析了为什么要学习Scrapy,理由只有一个,那就是免费,一分钱都不用花! 咦?怎么有人扔西红柿 ...
- [LeetCode] Add Bold Tag in String 字符串中增添加粗标签
Given a string s and a list of strings dict, you need to add a closed pair of bold tag <b> and ...
- MySQL · 引擎特性 · InnoDB 同步机制
前言 现代操作系统以及硬件基本都支持并发程序,而在并发程序设计中,各个进程或者线程需要对公共变量的访问加以制约,此外,不同的进程或者线程需要协同工作以完成特征的任务,这就需要一套完善的同步机制,在Li ...
- win10配置Memcached及MVC5测试分布式缓存入门
win10配置Memcached: 1.安装包下载 2.解压后有: 3.以管理员省份运行cmd: 4.安装:输入cmd命令: E:/memcached-amd64/memcached.exe -d ...