0929Appium app自动化测试经验分享

今早临时更改十一回老家的交通方式,因为火车票抢得我已经绝望了。祖国母亲要庆生,我实在无心工作啊。想想抢回来的票和放假去见朋友 就又难过又开心,简直不能更爽了。

个人博客:https://blog.csdn.net/zyooooxie

一)selenium的TouchActions类

from selenium.webdriver.common.touch_actions import TouchActions

app有个情景是 输入生日时 可以滑动来寻找具体日期 这是困扰我的问题:一直没找到合适的方法来实现

后来查看别人的分享,知道了selenium有个TouchActions的类。

这是selenium的TouchActions资料

查看官方的资料后,找到 scroll_from_element(on_element xoffset yoffset) 以元素为起点滑动

on_element:开始元素。 xoffset:X偏移量。 yoffset:Y偏移量。

但还有个 flick_element(on_element, xoffset, yoffset, speed) 轻触、以元素为起点以一定速度滑动

on_element # 操作元素定位。xoffset #x轴偏移量。yoffset #y轴偏移量。speed#速度

我就试了一下,居然能够实现,真是意想不到的啊!!!!!


nian = self.xin_find_element(By.ID, self.shengri_nian_id)
TouchActions(self.driver).flick_element(nian, 0, 200, 50).perform()

yue = self.xin_find_element(By.ID, self.shengri_yue_id)
TouchActions(self.driver).flick_element(yue, 0, 200, 50).perform()

ri = self.xin_find_element(By.ID, self.shengri_ri_id)
TouchActions(self.driver).flick_element(ri, 0, 200, 50).perform()

app可以看到 向下滑动(y方向的200)。 如果y方向 -200 可以实现向上滑动。

二)appium的TouchAction类

这是appium的TouchAction资料

规范里可用的事件有:短按(press) 释放(release) 移动到(moveTo) 点击(tap) 等待(wait) 长按(longPress) 取消(cancel) 执行(perform)

另外一个大类是MultiAction 多点触控,可以模拟用户多点操作

举例:地图App中,我们经常需要对界面进行缩放操作。这个待我尝试后再细致说。

三)滑动方法 new_swipe()


def new_swipe(self, a, b, c, d, miao=500):
    """
    分别处理 :传比例、实际值
    """
    time.sleep(1)
    phone_x = self.driver.get_window_size()["width"]
    phone_y = self.driver.get_window_size()["height"]

    if a < 1:
        self.driver.swipe(phone_x * a, phone_y * b, phone_x * c, phone_y * d, miao)
    else:
        self.driver.swipe(a, b, c, d, miao)

我自己封装的方法:
之所以在最前面加个强制等待1秒,是我看到真实页面跳转后,会加载数据,若直接滑动可能会出错。
之所以判断a和1的关系,因为实际输入坐标位置(位移)一般都是>1,<1的时候就是屏幕比例

实际成功运行的场景包括:
1.app初次启动,引导页的滑动;
2.某些地图app页面的滑动,各个方向都可以实现;
3.实现上拉、下拉刷新(实际坐标点、时间需要再设置);

交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值