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 ...
随机推荐
- layer ui插件显示tips时,修改字体颜色
今天做调查问卷,又遇到一个蛋疼小问题,记录下. 调查问卷有很多选项是要求必填的,如果不填的话,需要给出友好的提示.用的如下组件:http://layer.layui.com/ 1.之前一直默认用的: ...
- JavaScript的数组实现队列与堆栈的方法
一.队列和堆栈的简单介绍 1.1.队列的基本概念 队列:是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出! 如下图所示: 1.2.堆栈的基本概念 堆栈:是一种支持后进先出(LIFO)的 ...
- hadoop in hue的搭建(基于cdh版本)
首先官网下载tar包 http://archive.cloudera.com/cdh5/cdh/5/hue-3.9.0-cdh5.5.4.tar.gz 在安装hue之前,还需要安装各种依赖包,首先要检 ...
- Java内存回收机制.md
1.java的内存 java的内存结构分为 堆 (是gc的主要区域) 线程共享,主要是用于分配实例对象和数组 栈 线程私有,它的生命周期和线程相同,又分成 虚拟机栈和本地方法栈,只有它会报 Stack ...
- [LeetCode] Word Abbreviation 单词缩写
Given an array of n distinct non-empty strings, you need to generate minimal possible abbreviations ...
- Python模块之 - logging
日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. Logging模块构成 组成 ...
- Logistic Regression vs Naive Bayes
相同 逻辑回归和朴素贝叶斯都是对条件概率\(P(X|y)\)进行建模,使得最终的分类结果有很好的解释性. 不同 具体流程 逻辑回归: 假设\(P(y=1|X)\)满足逻辑函数\(h(z)=1/1+ex ...
- 迎圣诞,拿大奖活动赛题_SQLi(sprintf格式化字符)
看题目应该就是注入没跑了 先拿正常输入试试,输了admin,admin,结果返回password error!,说明还真的存在admin账户 拿常规注入语句试探一下admin' and 1=1%23, ...
- [HNOI 2002]营业额统计
Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger拿出了公司的账本,账本上记录了公司成立以来每 ...
- bzoj 5251: [2018多省省队联测]劈配
Description 一年一度的综艺节目<中国新代码>又开始了. Zayid从小就梦想成为一名程序员,他觉得这是一个展示自己的舞台,于是他毫不犹豫地报名了. 题目描述 轻车熟路的Zayi ...