Appium+Python UI自动化框架
import datetime
from appium.webdriver.common.touch_action import TouchAction
from appium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
from selenium.webdriver.support.wait import WebDriverWait
class TestDemo:
def setup(self):
caps = {}
caps["platformName"] = "Android"
caps["plathformVersion"] = "版本"
caps["deviceName"] = "系统名称"
caps["appPackage"] = "包名"
caps["appActivity"] = "应用程序"
caps["autoGrantPermissions"] = True
caps["unicodeKeyboard"] = True #输入中文
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',caps)
self.driver.implicitly_wait(10)#隐式等待
def test_demo(self):#首次同意弹窗
el1 = self.driver.find_element(By.ID, "")
el1.click()
def loaded(driver):#判断是否存在客户端弹窗,有则关闭无则跳过
print(datetime.datetime.now())
if len(self.driver.find_elements(By.ID,''))>=1:
self.driver.find_element(By.ID,'').click()
return True
else:
return False
try:
WebDriverWait(self.driver,10).until(loaded)
except:
print("没有广告弹窗")
#点击我的
el1 = self.driver.find_element(By.ID,"")
el1.click()
#登录
el1 = self.driver.find_element(By.ID,"")
el1.click()
sleep(1)
#点击账号输入框
el1 = self.driver.find_element(By.ID,"")
el1.send_keys("15296707948")
#输入验证码
el1 = self.driver.find_element(By.ID,"")
el1.send_keys("9797")
#勾选同意按钮
el1 = self.driver.find_element(By.ID,"")
el1.click()
#点击登录
el1 = self.driver.find_element(By.ID,"")
el1.click()
sleep(2)
print("~~~~~~~~~登录成功!!~~~~~~~~~~")
def teardown(self):
self.driver.quit()
以上是关于自动化脚本的大概轮廓,下面会列举一些关于写脚本的过程中遇到的一些总结。随时会补充!
1)获取APP入口---appium连接手机时必传的参数
adb logcat | grep -i displayed
备注:mac本可以直接在命令窗口中输入命令来获取,windows本需要在git bash中输入命令获取
2)清理App的缓存,使在测试的时候保证环境时干净的
adb shell pm clear com.audio.tingting
3)函数名词解释:pree 按下、release 释放、move_to 移动/滑动、long_pree 长按
4)页面向上滑动 ---这样可以避免在滑动时先点击元素后再去拖动,导致如果页面元素均为热区会优先实现对应的点击功能
el1=self.driver.find_element(By.XPATH,'xxxx')
el2=self.driver.find_element(By.XPATH,'xxxx')
self.driver.drag_and_drop(el1, el2)#定位底部位置和顶部位置后向上滑动
Appium+Python UI自动化框架的更多相关文章
- (appium+python)UI自动化_09_unittest批量运行测试用例&生成测试报告
前言 上篇文章[(appium+python)UI自动化_08_unittest编写测试用例]讲到如何使用unittets编写测试用例,并执行测试文件.接下来讲解下unittest如何批量执行测试文件 ...
- (appium+python)UI自动化_01_自动化环境搭建【MAC版】
Appium简介 Appium是一个开源的.跨平台的测试框架,主要用来进行app UI自动化,适用于原生应用.混合应用和移动网页应用(H5页面).目前支持Python.JavaScript.Objec ...
- (appium+python)UI自动化_08_unittest编写测试用例
前言 unittest是python自带的单元测试框架,类似于Junit(Java单元测试框架).支持自动化测试,可编写测试前置&后置条件,并且可批量运行测试用例并生成测试报告. 使用unit ...
- (appium+python)UI自动化_07_app UI自动化实例【叮咚搜索加车为例】
前言 初学UI自动化的小伙伴,在配置好appium+python自动化环境后,往往不知道如何下手实现自动化.小编在初期学习的时候也有这种疑惑,在此以叮咚买菜app-搜索加车为实例,展示下appium是 ...
- (appium+python)UI自动化_02_appium启动手机app
前提:需先安装配置好appium+python自动化环境,已配置好环境的小伙伴可以参考以下步骤启动Android app,具体步骤如下: 一.USB连接手机 (1)手机USB连接电脑 (2)手机打开开 ...
- (appium+python)UI自动化_03_元素定位工具
前言 在UI自动化过程中,需要对手机app上的元素进行定位,然后进一步编写自动化脚本操作app.定位元素首先需要定位工具来辅助查看页面元素.小编常用的定位工具有2种,分别是uiautomatorvie ...
- (appium+python)UI自动化_10_adb常用命令
前言 adb(Android Debug Bridge)工具是android-sdk里的一个工具,是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互.在app自动化测试过程中,有时要用到adb命 ...
- 基于PO和单例设计模式用python+selenium进行ui自动化框架设计
一)框架目录的结构 二)config包当中的config.ini文件主要是用来存项目的绝对路径,是为了后续跑用例和生成测试报告做准备然后目前的配置文件大都会用yaml,ini,excel,还有.py也 ...
- 基于Python3 + appium的Ui自动化测试框架
UiAutoTest 一.概要 数据驱动的Ui自动化框架 二.环境要求 框架基于Python3 + unittest + appium 运行电脑需配置adb.aapt的环境变量,build_tools ...
- ui自动化笔记 selenium_webdriver,ui自动化框架(web)
Selenium学习笔记 selenium webdriver是业界公认ui自动化测试的标准,其封装的api可以对浏览器的任何地方进行操作 selenium2.0和selenium3.0的区别? 3. ...
随机推荐
- Windows 11安装etcd
一.从官方网站找到Windows版的安装包下载 https://etcd.io/ 把etcd的压缩包解压到D:/soft/etcd文件夹下,首先运行etcd.exe,这是启动etcd服务的,接着就可以 ...
- RocketMQ 如何保证消息不丢失,重复消费
RocketMQ 如何保证消息不丢失 Producer 提供SYNC的发送消息方式,等待broker处理结果. 发送消息如果失败或者超时,则重新发送. // 同步发送消息,如果5秒内没有发送成功,则重 ...
- seata数据源代理
seata数据源代理流程 1-SeataDataSourceAutoConfiguration 创建SeataAutoDataSourceProxyCreator对象,默认seata模式为AT 2-S ...
- JAVA学习笔记-07
局部内部类不能定义静态成员. 内部类定义在局部时: 1不可以被成员修饰符修饰 2.可以直接访问玩不类中的成员,因为还持有外部类中的引用 但是不可以访问它所在的局部中的变量,只能访问被final修饰的局 ...
- hbase修改表TTL
创建表时可以指定TTL create 'test_lwt',{NAME=>'d',TTL=>3600} 设置test_lwt表数据TTL为3600秒 修改已存在的表TTL disable ...
- Linux LVM分区相关知识
Linux分区有多种方式,一种是LVM格式的比较方便,另一种是标准分区扩容比较麻烦,麻烦的事情那么出错的概率也就越大,所以建议生产环境上分区都使用LVM格式硬盘分区. 一. 什么叫LVM? L ...
- WSL2 网络异常排查 [ping 不通、网络地址异常、缺少默认路由、被宿主机防火墙拦截]
最近在使用的 wsl2 的时候突然发现 wsl2 无法正常联网,即 ping 不通外网以及宿主机的 wsl 网卡.但是将 wsl 版本设置为 1 就可以联网了. 如果你是正常使用的时候,并且自己没有手 ...
- HarmonyOS基础
目录 自适应布局 自适应拉伸布局 自适应缩放 自适应延伸 组件多态 ArkUI开发框架 基础组件 Text组件和Span组件 参考 参考:harmonyos3: 鸿蒙ArkUI eTS教程配套源码 参 ...
- RayLink远程控制软件:叮~你收到一份年度关键词报告
叮~~~ 今天是12月31日,2022年的最后一天.今天过后,明天就是2023年啦!R君提前恭祝大家新年快乐,温情满满的跨年之际,RayLink感恩2022遇见大家,2023还请大家多多关照~ 202 ...
- notepad++ 编写html代码快捷键切换到浏览器查看
1.右键chrome属性,查看目标C:\Users\duanx\AppData\Local\Google\Chrome\Application\chrome.exe 2.然后notepad运行,输入如 ...