在app应用日常使用过程中,会经常用到在屏幕滑动操作。如刷朋友圈上下滑操作、浏览图片左右滑动操作等。在自动化脚本该如何实现这些操作呢?

在Appium中模拟用户滑动操作需要使用swipe方法,该方法定义如下:

def swipe(self, start_x, start_y, end_x, end_y, duration=None):

"""Swipe from one point to another point, for an optional duration.

:Args:

- start_x - x-coordinate at which to start

- start_y - y-coordinate at which to start

- end_x - x-coordinate at which to stop

- end_y - y-coordinate at which to stop

- duration - (optional) time to take the swipe, in ms.

:Usage:

driver.swipe(100, 100, 100, 400)

滑动解析

滑动主要分为:

  1. 水平滑动
  2. 垂直滑动
  3. 任意方向滑动

滑动轨迹图如下:

实践应用

测试场景

  • 安装启动考研帮,手动向水平左滑动首页引导页面。
  • 点击“立即体验”进入登录页面。

代码实现

swipe.py

from time import sleep

from find_element.capability import driver

#获取屏幕尺寸

def get_size():

x=driver.get_window_size()['width']

y=driver.get_window_size()['height']

return x,y

#显示屏幕尺寸(width,height

l=get_size()

print(l)

#向左滑动

def swipeLeft():

l=get_size()

x1=int(l[0]*0.9)

y1=int(l[1]*0.5)

x2=int(l[0]*0.1)

driver.swipe(x1,y1,x2,y1,1000)

#向左滑动2

for i in range(2):

swipeLeft()

sleep(0.5)

driver.find_element_by_id('com.tal.kaoyan:id/activity_splash_guidfinish').click()

注意:运行前记得将capablity里面的check_skipBtn()先注释掉,否则直接跳过了无法滑动引导页面。

课后作业

把垂直上下滑动以及向右滑动的也封装并实践。

  • def swipeUp()
  • def swipeDown()
  • def swipeRight()

参考答案

def swipeUp():

l = get_size()

x1 = int(l[0] * 0.5)

y1 = int(l[1] * 0.95)

y2 = int(l[1] * 0.35)

driver.swipe(x1, y1, x1, y2, 1000)

def swipeDown():

l=get_size()

x1 = int(l[0] * 0.5)

y1 = int(l[1] * 0.35)

y2 = int(l[1] * 0.85)

driver.swipe(x1, y1, x1, y2, 1000)

def swipeRight():

l=get_size()

y1 = int(l[1] * 0.5)

x1 = int(l[0] * 0.25)

x2 = int(l[0] * 0.95)

driver.swipe(x1, y1, x2, y1, 1000)

appium滑动的更多相关文章

  1. appium滑动操作(向上、向下、向左、向右)

    appium滑动操作(向上滑动.向下滑动.向左滑动.向右滑动) 测试app:今日头条apk 测试设备:夜游神模拟器 代码如下: 先用x.y获取当前的width和height def getSize() ...

  2. Python Appium 滑动、点击等操作

    Python Appium 滑动.点击等操作 1.手机滑动-swipe # FileName : Tmall_App.py # Author : Adil # DateTime : 2018/3/25 ...

  3. Appium 滑动界面swipe用法

    Appium 滑动API:Swipe(int start x,int start y,int end x,int y,duration) 解释:int start x-开始滑动的x坐标, int st ...

  4. appium 滑动

    前些日子,配置好了appium测试环境,至于环境怎么搭建,参考:http://www.cnblogs.com/tobecrazy/p/4562199.html   知乎Android客户端登陆:htt ...

  5. Appium滑动函数:Swipe()

    Appium处理滑动方法是swipe 滑动API:Swipe(int start x,int start y,int end x,int y,duration) 解释: int start x-开始滑 ...

  6. Appium 滑动踩坑记

    前言 对于不同java-client版本,很多的API已经产生大的变化,所以一些API大家会发现已经失效或者使用方式发生了变化,滑动就是其中一项,这篇文章对滑动在不同的java-client版本以及不 ...

  7. appium 滑动封装

    #获得机器屏幕大小x,y def getSize():     x = dr.get_window_size()['width']     y = dr.get_window_size()['heig ...

  8. Appium for iOS setup

    windows下appium设置 之前研究了一段时间的appium for native app 相应的总结如下:                                           ...

  9. appium for hybrid app 处理webview

    之前研究了一段时间的appium for native app 相应的总结如下:                                            appium测试环境搭建 :ht ...

随机推荐

  1. N天学习一个linux命令之sort

    用途 对文本内容按行排序,输出排好序后的内容到标准输出流 用法 sort [OPTION]... [FILE]... sort [OPTION]... --files0-from=F 常用选项 -b, ...

  2. 你还在苦逼地findViewById吗?使用ButterKnife从此轻松定义控件

    前段时间笔者在苦逼地撸代码~最后发现有些复杂的界面在写了一屏幕的findviewbyid~~~另一堆setOnXXXListener~有没有方便一点的方法让我们简单点不用每次都定义一次.find一次, ...

  3. Linux C程序存储空间的逻辑布局

    原文:http://blog.chinaunix.net/uid-20692625-id-3057053.html ------------------------------------------ ...

  4. Java UDP通信简单实现

    1.Java实现方式 1)server端 /** * UDPserver端 * */ public class UdpServer { // 定义一些常量 private final intMAX_L ...

  5. MySQL具体解释(15)-----------海量数据解说

    第1章  引言 随着互联网应用的广泛普及,海量数据的存储和訪问成为了系统设计的瓶颈问题. 对于一个大型的互联网应用.每天几十亿的PV无疑对数据库造成了相当高的负载.对于系统的稳定性和扩展性造成了极大的 ...

  6. axis实现webservices分布式通信

    分布式通信原理 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2ZsMjAxMjEzMTQ=/font/5a6L5L2T/fontsize/400/fil ...

  7. css3 动态背景

    动态背景 利用多层背景的交替淡入淡出,实现一种背景在不停变换的效果,先看图. 效果图: DEMO地址 步骤 1.利用css的radial-gradient创建一个镜像渐变的背景.当中的80% 20%为 ...

  8. Privoxy shadowscocks代理

    ubuntu已经启动好了sock5的代理, 代理为: 127.0.0.1:1080. #使用Privoxy将sock5代理映射为http代理. 安装Privoxy sudo apt-get updat ...

  9. hihocoder 1676 树上等差数列 黑科技树形dp

    #1676 : 树上的等差数列 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一棵包含N个节点的无根树,节点编号1~N.其中每个节点都具有一个权值,第i个节点的权值 ...

  10. ”W: GPG 错误:http://ppa.launchpad.net lucid Release: 由于没有公钥,无法验证下列签名:“的问题

    在安装更新时,即在运行,命令行sudo apt-get update 或者运行更新管理器的时候,出现如下错误: W: GPG 错误:http://ppa.launchpad.net lucid Rel ...