目录

前言

一,swipe方法介绍

二,重新封装

三,示例

写在最后


前言

app自动化测试过程中,经常会遇到滑动屏幕操作,appium框架的话我们可以使用webdriver提供的swipe()方法来对屏幕页面进行上滑、下滑、左滑、右滑操作。

一,swipe方法介绍

  • swipe()方法源码如下:

    swipe()方法的参数说明:

    start_x:起始横坐标

    start_y:起始纵坐标

    end_x:结束时横坐标

    end_y:结束时纵坐标

    duration:滑动持续时间,单位毫秒,默认None(一般设置500-1000毫秒比较合适)

  • duration参数需要注意的是,在移动设备上滑动时间的快慢所形成的效果是不一样的。以今日头条APP首页上滑为例,同样的滑动距离,滑动较快则出现类似翻页的效果,而滑动较慢则是同一则新闻从起始位置滑动到结束位置。

  • 手机屏幕的坐标:以手机屏幕左上角为坐标中心(0, 0),向右话滑动则纵坐标不变,横坐标变大;向下滑动则横坐标不变,纵坐标变大。在uiautomatorviewer中可以元素左上角坐标与右下角的坐标,如下图中"视频"按钮

  • 因为不同测试机屏幕的尺寸很可能有差异,所以一般不使用固定的的坐标来滑动屏幕,而是先获取测试机屏幕尺寸,再通过获取的手机屏幕尺寸来确定滑动的起始、结束坐标,这样在我们更换了测试手机后不需要更改方法。使用webdriver提供的get_window_size()方法可以获取屏幕尺寸(即屏幕右下角的坐标),方法如下:

# 屏幕宽
width = driver.get_window_size()['width']
# 屏幕高
height = driver.get_window_size()['heigth']
  • 滑动屏幕操作代码如下:
# 屏幕从下向上滑动
driver.swipe(width*0.5, height*0.9, width*0.5, height*0.1, 1000)
# 屏幕从上向下滑动
driver.swipe(width*0.5, height*0.1, width*0.5, height*0.9, 1000)
# 屏幕从左向右滑动
driver.swipe(width*0.1, height*0.5, width*0.9, height*0.5, 1000)
# 屏幕从右向左滑动
driver.swipe(width*0.9, height*0.5, width*0.1, height*0.5, 1000)

二,重新封装

我们还可以将滑动屏幕的操作封装成方法,方便后续调用

# project/common/baseOpera.pyclass BaseOpera(object):'''基础操作'''def __init__(self, driver):self.driver = driverself.duration = 1000@propertydef width(self):'''获取屏幕宽度'''return self.driver.get_window_size()['width']@propertydef height(self):'''获取屏幕高度'''return self.driver.get_window_size()['height']def swipe_to_left(self, base=0.1):'''从右向左滑动'''return self.driver.swipe(self.width*(1-base),self.height*0.5,self.width*base,self.height*0.5,self.duration)def swipe_to_right(self, base=0.1):'''从左向右滑动'''return self.driver.swipe(self.width*base,self.height*0.5,self.width*(1-base),self.height*0.5,self.duration)def swipe_to_top(self, base=0.9):'''从下向上滑动'''return self.driver.swipe(self.width*0.5,self.height*base,self.width*0.5,self.height*(1-base),self.duration)def swipe_to_bottom(self, base=0.9):'''从上向下滑动'''return self.driver.swipe(self.width*0.5,self.height*(1-base),self.width*0.5,self.height*base,self.duration)

三,示例

调用baseOpera.py模块中的滑动方法,向上滑动查看今日头条首页新闻,简单示意如下:

from appium import webdriver
from common.baseOpera import BaseOperadef android_driver():desired_caps = {"platformName": "Android","platformVersion": "10","deviceName": "PCT_AL10","appPackage": "com.ss.android.article.news","appActivity": ".activity.MainActivity","automationName": "uiautomator2","unicodeKeyboard": True,"resetKeyboard": True,}# 启动appdriver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)return driverdef watch_news():# 向上滑动今日头条首页driver = android_driver()bo = BaseOpera(driver)bo.swipe_to_top()if __name__ == '__main__':watch_new()

写在最后

最后再唠唠一句,如果想以测试为长期发展职业目标,是需要时刻保持学习的,要使自己具备竞争力,无论你现在工作几年,只要行动起来,你就已经占优势了,好啦就到这里了,祝大家2022年能升职加薪,没入职的就早日拿到心仪公司的offer,事事顺遂。

【Python+Appium】开展自动化测试(八)swipe()滑动页面相关推荐

  1. python客户端自动化测试滚轮移到最上面_Python+Appium自动化测试(8)-swipe()滑动页面...

    app自动化测试过程中,经常会遇到滑动屏幕操作,appium框架的话我们可以使用webdriver提供的swipe()方法来对屏幕页面进行上滑.下滑.左滑.右滑操作. 一,swipe方法介绍 swip ...

  2. python+appium实现自动化测试的示例代码

    更多python教程请到友情连接: 菜鸟教程https://www.piaodoo.com 初中毕业读什么技校 http://cntkd.net 茂名一技http://www.enechn.com p ...

  3. python appium自动化测试平台开发,Python+Appium实现自动化测试

    一.环境准备 1.脚本语言:Python3.x    IDE:安装Pycharm 2.安装Java JDK .Android SDK 3.adb环境,path添加E:\Software\Android ...

  4. python+appium+PyCharm==自动化测试APP环境

    1.点击SDK下面的uiautomatorviewer 2.启动夜神 3.启动adb--->在cmd adb -version adb connect 127.0.0.1:62001 这里的配置 ...

  5. 【Python+Appium】开展自动化测试(十)TouchAction类与MultiAction类(控件元素的滑动、拖动,九宫格解锁,手势操作等)

    目录 前言 一,TouchAction类 1,TouchAction类由webdriver库提供,提供以下方法: 2,tap点击 3,press短按 4,long_press长按 5,move_to移 ...

  6. 2022软件测试技能 APP自动化测试 Python+Appium+Uiautomator2 实战教程

    系列文章目录 提示:阅读本章之前,请先阅读目录 文章目录 系列文章目录 前言 一.Appium 原理 二.环境搭建,一键搞定 1. 安装Java JDK 2. Android SDK 安装与配置 3. ...

  7. APP自动化测试框架搭建(五)--Python+Appium+pytest-html

    第一章 APP自动化环境搭建(Mac版) 第二章 APP自动化环境搭建(Windows版) 第三章 adb命令 第四章 元素定位.元素操作 第五章 APP自动化测试框架搭建 Python+Appium ...

  8. python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...

    基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unitt ...

  9. Python +Appium 实现app自动化测试

    Python +Appium 实现app自动化测试 一.Appium简介 Appium是一款开源工具,用于自动化iOS.Android和Windows桌面平台上的本地.移动web和混合应用程序.原生应 ...

  10. Python + Appium 自动化测试(二):实战

    最近一直在忙比赛,从电赛到下个星期的省赛,这一个月真的过的好漫长....最后电赛只拿了省级的奖项,有点不甘心吧,但是还是有好多需要学习的地方,希望自己以后能够更好地面对这些挑战吧!! 一.连接手机 通 ...

最新文章

  1. 二值网络--Optimize Deep Convolutional Neural Network with Ternarized Weights and High Accuracy
  2. Jackson 通过自定义注解来控制json key的格式
  3. matlab 2014 破解使用
  4. 分布式系统架构与云原生—阿里云《云原生架构白皮书》导读
  5. 人工智能,不止于技术的革命--WOT2017全球创新技术峰会开幕
  6. Jamie and Tree[CF916E]
  7. labelme实例分割_MaskRCNN在多个实例数据集上实践
  8. GIT提交记录和Revert commit过程分析
  9. ansible 并发设置_如何使用Ansible通过Prometheus设置系统监视
  10. minikube start 使用Hyper-V
  11. 给妹子讲python-S01E01好用的列表
  12. 301 重定向 怎么让输入的不带www自动加上www
  13. cJSON基本使用方法
  14. 怎么在服务器上显示u盘启动,电脑服务器怎么设置U盘启动
  15. 统一AI教育是怎么样
  16. java 日期转大写,java步骤转换大写日期及人民币大写转换方式 .txt
  17. 华中科技大学计算机二级成绩,华中科技大学2017年计算机水平测试(软考)报名通知...
  18. 客户端性能优化实战经验分享
  19. 如何通俗的理解函数的极限_函数的极限问题怎么解释更通俗易懂?初高中数学辅导...
  20. 七牛云配置二级域名,从而避免七牛云30天自动更改域名的问题

热门文章

  1. 嵌入于MOEA/D的一个自适应约束处理方法
  2. 计算机主机自动关机如何设置,电脑设置如何自动关机【图文教程】
  3. 分时电价模型,削峰填谷,转移24小时一天中用电率,减少谷峰差
  4. mac --- wifi无法获取ip地址
  5. 【线性代数笔记】关于两个矩阵相乘等于零矩阵(AB=O)
  6. 华三和华为交换机配置FTP文件传输
  7. 小米计算机科学计算机,小米计算器APP发布“亲戚计算”功能
  8. 实现微博批量取消关注用户
  9. java轮训算法_轮询算法 - 小虾米的java梦 - 博客园
  10. 基于可见光通信的智慧路灯