目录
前言
一,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.py class BaseOpera(object): ''' 基础操作 ''' def __init__(self, driver): self.driver = driver self.duration = 1000 @property def width(self): '''获取屏幕宽度''' return self.driver.get_window_size()['width'] @property def 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 BaseOpera def 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, } # 启动app driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) return driver def watch_news(): # 向上滑动今日头条首页 driver = android_driver() bo = BaseOpera(driver) bo.swipe_to_top() if __name__ == '__main__': watch_new()
写在最后
最后再唠唠一句,如果想以测试为长期发展职业目标,是需要时刻保持学习的,要使自己具备竞争力,无论你现在工作几年,只要行动起来,你就已经占优势了,好啦就到这里了,祝大家2022年能升职加薪,没入职的就早日拿到心仪公司的offer,事事顺遂。



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/64951.html