python 版 app自动化测试之屏幕滑动函数封装
https://blog.csdn.net/weixin_45912307/article/details/108891990
以下三种形式自行选择一种,或进行再次改造封装
封装形式1:
# —— coding :utf-8 ——
# @time: 2020/10/1 0:50
# @IDE: xxxxxxx
# @Author: xxxxxxx
# @Email: xxxxxxx@qq.com
# @File: base.py
import logging
from Common import dir_config
import time
class BasePage:
"""
start_x:起始横坐标
start_y:起始纵坐标
end_x:结束时横坐标
end_y:结束时纵坐标
"""
def __init__(self, driver):
self.driver = driver
def get_window_size(self):
logging.info("正在准备获取当前屏幕的大小")
try:
size = self.driver.get_window_size()
width = size["width"]
height = size["height"]
logging.info("获取当前屏幕大小成功,宽:{} 高:{}".format(width, height))
return width, height
except:
logging.exception("获取当前屏幕大小失败")
raise
def swipe_down(self, t=500, n=1, doc=""):
logging.info("向下滑动屏幕操作...")
try:
size = self.get_window_size()
start_x = size[0] * 0.5
start_y = size[1] * 0.1
end_x = size[0] * 0.5
end_y = size[1] * 0.9
for i in range(n):
self.driver.swipe(start_x,start_y,end_x ,end_y,t)
logging.info("屏幕第{}次向下滑动成功".format(i + 1))
except:
logging.exception("屏幕向下滑动失败")
self.save_screenshot(doc)
raise
def swipe_up(self, t=500, n=1,doc=""):
logging.info("向上滑动屏幕操作...")
try:
size = self.get_window_size()
start_x = size[0] * 0.5
start_y = size[1] * 0.9
end_x = size[0] * 0.5
end_y = size[1] * 0.1
for i in range(n):
self.driver.swipe(start_x, start_y, end_x, end_y, t)
logging.info("屏幕第{}次向上滑动成功".format(i + 1))
except:
logging.exception("屏幕向上滑动失败")
self.save_screenshot(doc)
raise
def swipe_right(self, t=500, n=1,doc=""):
logging.info("向右滑动屏幕操作...")
try:
size = self.get_window_size()
start_x = size[0] * 0.1
start_y = size[1] * 0.5
end_x = size[0] * 0.9
end_y = size[1] * 0.5
for i in range(n):
self.driver.swipe(start_x, start_y, end_x, end_y, t)
logging.info("屏幕第{}次向右滑动成功".format(i + 1))
except:
logging.exception("屏幕向右滑动失败")
self.save_screenshot(doc)
raise
def swipe_left(self, t=500, n=1,doc=""):
logging.info("向左滑动屏幕操作...")
try:
size = self.get_window_size()
start_x = size[0] * 0.9
start_y = size[1] * 0.5
end_x = size[0] * 0.1
end_y = size[1] * 0.5
for i in range(n):
self.driver.swipe(start_x, start_y, end_x, end_y, t)
logging.info("屏幕第{}次向左滑动成功".format(i + 1))
except:
logging.exception("屏幕向左滑动失败")
self.save_screenshot(doc)
raise
# 保存截图
def save_screenshot(self, doc):
# 图片名称:模块名_页面名称_操作名称_年-月-日_时分秒.png
# filePath = "截图路径" + "{0}".format(time.strftime("%Y-%m-%d_%H:%M:%S"))
filePath = dir_config.Screenshots_dir + \
"\{0}_{1}.png".format(doc, time.strftime("%Y-%m-%d_%H:%M:%S", time.localtime()))
try:
self.driver.save_screenshot(filePath)
logging.info("截取网页成功,文件路径为:{}".format(filePath))
except:
logging.exception("保存截图失败")
raise
封装形式2:
class BaseOpera:
'''
基础操作
'''
def __init__(self, driver):
self.driver = driver
# duration:滑动持续时间,单位毫秒,默认None(一般设置500-1000毫秒比较合适)
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_up(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
)
封装形式3:
class BasePage:
def __init__(self, driver):
self.driver = driver
# 获取整个屏幕大小
def get_size(self):
return self.driver.get_window_size()
# 向上滑动
def swipe_up(self):
size = self.driver.get_window_size()
self.driver(size["width"] * 0.5, size["height"] * 0.9, size["width"] * 0.5, size["height"] * 0.1)
# 向下滑动
def swipe_down(self):
size = self.driver.get_window_size()
self.driver(size["width"] * 0.5, size["height"] * 0.1, size["width"] * 0.5, size["height"] * 0.9)
# 向左滑动
def swipe_left(self, size):
size = self.driver.get_window_size()
self.driver(size["width"] * 0.9, size["height"] * 0.5, size["width"] * 0.1, size["height"] * 0.5)
# 向右滑动
def swipe_right(self):
size = self.driver.get_window_size()
self.driver(size["width"] * 0.1, size["height"] * 0.5, size["width"] * 0.9, size["height"] * 0.5)