APP测试常用封装

import time

from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait

定义一个获取元素的方法

def get_element(driver, find_type, value):

wait = WebDriverWait(driver, 10, 1)

element = wait.until(lambda x: x.find_element(find_type, value))

return element

减少代码量,不必要在每个元素定位的代码中都使用显示等待来定位。

def get_element(driver, element): # element 表示的元素定位的值
wait = WebDriverWait(driver, 10, 1)
element = wait.until(lambda x: x.find_element(element[0], element[1]))
return element

判断元素是否存

def element_is_exsit(driver, element): # element 表示的元素定位的值
try: # 捕获异常信息
get_element(driver, element) # 能够正常找元素,就返回True
return True
except Exception as e: # 如果捕获到了异常,返回False
return False

为了保证代码的健壮性,确定输入的内容一定不会出错,所以在输入前做了一次清除。

def input_text(element, text):
“”"
:param element: 表示的是元素对象
:param text: 表示的是要输入的内容
:return:
“”"
# 清除元素中的文本内容
element.clear()
# 输入文本内容
element.send_keys(text)

封装滑屏操作方法

def execute_swipe(driver, fx, count=1):
w = driver.get_window_size()[“width”] # 获取手机屏幕的宽度
h = driver.get_window_size()[“height”] # 获取手机屏幕的高度
# w=1080 h=1920
if fx == “top”: # 往上滑
zb = (w/2, h0.9, w/2, h0.1)
# (540, 1728, 540, 192)
elif fx == “down”: # 往下滑
zb = (w/2, h0.1, w/2, h0.9)
elif fx == ‘left’: # 往左滑
zb = (w0.9, h/2, w0.1, h/2)
else: # 往右滑
zb = (w0.1, h/2, w0.9, h/2)
for i in range(count):
driver.swipe(*zb, duration=1200)
time.sleep(1)

封装一个边滑动边查找的方法

def swipe_find(driver, element, element_info): # By.XPATH, “//*[@text=‘存储’]”
ele_size = element.size # 获取元素大小
width = ele_size[“width”] # 获取元素的宽度
height = ele_size[“height”] # 获取元素的高度
# 获了element元素左上角点的坐标
ele_position = element.location
x = ele_position[“x”] # 获取左上角点的x坐标值
y = ele_position[“y”] # 获取左上角点的y坐标值

start_x = x + width*0.9  # 获取的是起始点X的值
y = y + height*0.5  # 获取的是起始及终止点的Y的值
end_x = x + width*0.1   # 获取的是终止点X的值
while True:
    page = driver.page_source  # 记录查找前的页面资源,通过对比页面资源来退出死循环
    try:
        driver.find_element(*element_info).click()  # 如果有找到对应的元素那么点击并返回
        return True
    except Exception as e:
        print("没有找到该元素!")
    driver.swipe(start_x, y, end_x, y, duration=1000)  # 没有找到元素,那么滑屏后再对比并重新查找
    time.sleep(1)
    if page == driver.page_source:
        print("滑屏操作完成且没有找到元素信息")
        return False

定义获取toast消息的方法

def get_toast(driver, message, timeout=3):
# xpath = “//[contains(@text, ‘" + message + "’)]" #.format(message) # 通过{} 符号将message当参数传到xpath表达式中去
xpath = F"//
[contains(@text, ‘{message}’)]”
wait = WebDriverWait(driver, timeout, 1)
element = wait.until(lambda x:x.find_element(By.XPATH, xpath))
return element.text

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值