史上最全 Appium 自动化测试从入门到框架实战精华学习笔记(二)

本文是Appium自动化测试系列的第二篇,主要介绍手势操作,如滑动、多点解锁,以及UIAutomator在查找元素方面的应用,包括resource-id、classname、content-desc等定位方式,并探讨了显示等待的重要性。
摘要由CSDN通过智能技术生成

在这里插入图片描述
本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群。

本系列文章汇总了从 Appium 自动化测试从基础到框架高级实战中,所涉及到的方方面面的知识点精华内容(如下所示),希望对大家快速总结和复习有所帮助。

Appium 自动化测试从基础到框架实战
Appium 基础 1 (环境搭建和简介)
Appium 基础 2 (元素定位和元素常用方法)
Appium 基础 3 (手势操作和 uiautomator 查找元素)
Appium 基础 4 (显式等待)
Appium 基础 5 (toast 和参数化)
Appium 基础 6 (webview)
Appium_ 企业微信练习 (非 PO,增加和删除联系人)
Appium_ 企业微信练习 ( PO–增加联系人)
本文为第二篇,主要讲解 Appium 手势操作、查找元素、显示等待(附实例代码)。

Appium 的触屏操作
滑动小案例
进入雪球应用
再主页从下往上滑动
避免使用坐标(代码用获取屏幕的长宽来解决这个问题)
代码

from time import sleep
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction

class TestFind():
    def setup(self):
        self.desire_cap= {
            "platformName":"android",
            "deviceName":"127.0.0.1:7555",
            "appPackage":"com.xueqiu.android",
            "appActivity":".view.WelcomeActivityAlias",
            "noReset":"true",
            "unicodeKeyboard":True
        }
        self.driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",self.desire_cap)
        self.driver.implicitly_wait(5)

    def test_search(self):
        """
        1.进入雪球应用
        2.再主页从下往上滑动
        3.避免使用坐标
        :return:
        """
        #由于雪球真的是太慢了,所以睡10秒
        sleep(10)
        #定义一个TouchAcion对象
        aciton=TouchAction(self.driver)
        #获取整个屏幕的右下角的坐标
        window_rect=self.driver.get_window_rect()
        #提取屏幕的最大的宽
        width=window_rect["width"]
        #提取屏幕的最大的高度
        height=window_rect['height']
        #x的坐标定义为最大宽的一半,也就是中心的x坐标
        x1=int(width/2)
        #定义起始的y坐标,在4/5的底部位置
        y_start=int(height* 4/5)
        #定义终点的y坐标,在1/5顶部的位置,这样就可以模拟从下往上滑动的动作
        y_end=int(height* 1/5)
        #先press点击初始的坐标,然后按住不放等2秒再move_to到终点坐标,然后再release()释放坐标点,用perform()去执行一系列action操作
        aciton.press(x=x1,y=y_start).wait(2000).move_to(x=x1,y=y_end).release().perform()
        #重复两次,看的效果更明显
        aciton.press(x=x1, y=y_start).wait(2000).move_to(x=x1, y=y_end).release().perform()
        aciton.press(x=x1, y=y_start).wait(2000).move_to(x=x1, y=y_end).release().perform()
        sleep(3)

滑动多点解锁
得下载一个叫手势密码锁的 App,百度一下有
进入解锁的页面
设置解锁密码为一个7字
意外发现 Appium 可以指定去不同的初始的 activity,好像也是看应用的
代码

from time import sleep
from appium import webdriver
from appium.webdriver.common.mobileby import MobileBy as By
from appium.webdriver.common.touch_action import TouchAction

class TestFind():
    def setup(self):
        self.desire_cap = {
            "platformName": "android",
            "deviceName": "127.0.0.1:7555",
            "appPackage": "cn.kmob.screenfingermovelock",
            "appActivity": "com.samsung.ui.MainActivity",
            "noReset": "true"
        }
        self.driver = webdriver.Remote("http://127.0.0.1:4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值