IOS 自动化

article/2025/8/21 16:12:00

python + airtest + poco + ios真机

case文件: ExecuteCodeIos.text
case 格式

废话不多说直接上代码:

# # -*- encoding=utf8 -*-
__author__ = "UI自动化 ios 脚本"from airtest.core.api import *
from poco.drivers.ios import iosPoco
import os# 钉钉报警
from call_the_police import send_FeiShuwhile True:devices = []dev_list = []for dName_ in os.popen("tidevice list"):dev_list.append(dName_)for i_lsit in dev_list[1].split(' '):if i_lsit != '':devices.append(i_lsit.replace('\n', ''))if len(dev_list) == 2:msg = 'ios手机 导致无法找到UUID 进行启动ios自动化脚本。'send_FeiShu("无法连接", msg)exit()else:auto_setup(__file__)ios_device = connect_device(f"iOS:///http+usbmux://{devices[0]}")poco = iosPoco()snapshot()start_app("应用包名") # 放入应用包名time.sleep(4)# poco("抖查查").click()if ios_device.alert_exists() == True:print("获取弹框中的描述文案: {}".format(ios_device.driver.alert.text))if "抖查查" in "获取弹框中的描述文案: {}".format(ios_device.driver.alert.text):poco("允许").click()swipe((286, 292), (25, 457))swipe((286, 292), (25, 457))poco("立即体验").click()time.sleep(4)elif "好像哪里出错了" in "获取弹框中的描述文案: {}".format(ios_device.driver.alert.text):poco("返回").click()elif "信息走失啦" in "获取弹框中的描述文案: {}".format(ios_device.driver.alert.text):poco("刷新").click()elif "暂无数据" in "获取弹框中的描述文案: {}".format(ios_device.driver.alert.text):poco("稍后再试").click()elif "访问过于频繁" in "获取弹框中的描述文案: {}".format(ios_device.driver.alert.text):poco("稍后再试").click()elif "您当前账号登录" in "获取弹框中的描述文案: {}".format(ios_device.driver.alert.text):poco("取消").click()def IosLonIn():poco("登录获取更多体验").click()poco("密码登录").click()poco("TextField").click()text("账号") # 登录账号poco("SecureTextField").click()text("密码") # 登录密码poco("登录").click()def IosLonOut():poco("mine setting new").click()poco("退出登录").click()# 准备一个文件用来写casewith open("ExecuteCodeIos.text", 'r', encoding='utf-8') as code_find:code_list = [code_i.split('、')[1].replace('\n', '').split(' - ') for code_i in code_find.readlines()]for i in range(len(code_list)):for i_code in code_list[i]:if i_code.encode('utf-8').isalpha() == True:keyevent(f"{i_code}")else:if i_code == "登录":IosLonIn()elif i_code == "退出登录":IosLonOut()else:print(i_code)poco(f'{i_code}').click()break

以上就是ios的自动化,很简陋


http://chatgpt.dhexx.cn/article/DRmjMa0L.shtml

相关文章

IOS自动化测试环境搭建(Python Java)

一、前言 IOS的App自动化测试与Android的一样,也可以用appium来进行。但是IOS自动化依赖苹果的osx系统、Xcode构建等,且封闭的系统需要苹果开发者账号才可以驱动真机。Appium的环境配置有点麻烦,可能大部分时间都在处理各种稀奇古怪的报错&am…

【iOS自动化测试】第三章:框架设计

框架总体 pytestallureappium 采用po分层设计集成到jenkins运行 框架结构 名称作用备注BasePage存放相应的封装方法基类层Pages页面层用于元素的定位封装页面层TestCases编写测试用例用例层Report存放报告报告层Public公共的调用方法公共层Log日志存放位置日志层Image用于存放…

iOS自动化测试的那些干货

前言 如果有测试大佬发现内容不对,欢迎指正,我会及时修改。 大多数的iOS App(没有持续集成)迭代流程是这样的 也就是说,测试是发布之前的最后一道关卡。如果bug不能在测试中发现,那么bug 就会抵达用户,所以测试的完整…

iOS自动化,知识点1

知识点1: 初始化连接手机 1.查找udid和包名 2,appium连接ios手机的条件 from appium import webdriver from selenium.webdriver.common.by import By import timedef test_01():desired_caps dict()desired_caps["platformName"]"iOS&…

2023主流技术 Appium+IOS 自动化测试环境搭建

关于Appium for IOS Appium是目前最主流的app自动化测试技术,能够同时支持IOS、Android平台上的移动应用自动化测试,能支持众多语言,包括:Java、Python、Ruby、JavaScript等;并且Appium是开源免费使用的。 目前网上的…

ios自动化-1阶段

使用pytestwda执行自动化 整体结构代码层级 #目前待改进的地方 1.执行速度慢,wda获取dom树的效率太低 2.稳定性差,经常会出现一些弹窗导致失败,可参考安卓弹窗处理 watcher() 优化 3.有部分元素定位不到,目前怀疑是层级问题&…

Visio 画流图 程序流图 斜线

如果直接在Visio中选择连接线来连接,会有直角出现,但是我们需要斜线: 解决方法: 选中直角连接线,右键,选择“直线连接线”: 这样我们就能画出想要的斜线了,也就可以画出程序流图了…

Visio设置跨线之间不避让

文章目录 设置方法1. 选中所需设置的直线;2. 菜单选中设计;3. 选中连接线;4. 选中显示跨线。 设置方法 1. 选中所需设置的直线; 2. 菜单选中设计; 3. 选中连接线; 4. 选中显示跨线。

Visio画ER图

建立数据库时我们需要考虑数据之间的关系,为了理清数据之间的关系我们需要对数据进行统一的整理。对于较复杂的数据库我们需要建立数据库模型,具体可分为两步:首先对数据库进行结构分析并使用树、表等描述数据,然后分析数据库的操…

visio 教程-绘图技巧、快捷键大全

visio 绘图技巧、快捷键大全,一键对齐 前言一、常用快捷键二、使用技巧对象移动对象复制绘制直线一键对齐 自动排列(非常好用)辅助线对齐图像边缘空白消除word中visio图编辑技巧去掉直线交叉点增加连接点 前言 Visio 是Office软件系列中的负…

visio画太极图

步骤一 添加两个圆,且大圆的半径是小圆的2倍。 步骤二 往小圆添加一条直线作为直径 步骤三 选中小圆和直径,依次点击开发工具–操作–连接,然后选中连接后的小圆,再依次点击开发工具–操作–修建,可以分离出如下所示的两个…

visio拉动线条总是保持直线状态

** 有时候在visio中画图想画直线,但是线条总是会弯折,为了解决和个问题,如下做:鼠标拖住线条的一个端点,按住ctrlshift,线条就只能在水平或垂直方向上移动:** 1、鼠标选择一个端点: 2、按住ctr…

Visio 2013画直线问题总结(折线变直,交叉时产生的交叉桥)

问题1:我们画直线时画出来的是折线,折线变直的方法:选中线条,点击鼠标右键,选择“直线连接线”如下图: 问题2:直线交叉时产生的交叉桥,影响整体美观,去掉交叉桥的方法&am…

WinForm学习

文章目录 一、C#是什么?二、C#的特点三、了解C#、.NET、Winform的关系四、快速创建Winform程序五、Winform菜单和工具栏六、Form初始化、布局总结 一、C#是什么? C#是一个现代的、通用的、面向对象的、面向组件、结构化语言C#的构想十分接近C和C,是一门…

winform利用html开发,Winform开发框架之HTML编辑控件介绍

我们知道,在做Web开发的时候,很多控件可以用来做HTML内容编辑的,Winform开发就相对少很多,不过很多时候,我们在做Winform开发的时候,也是需要处理这样的场景的。例如发送HTML邮件内容的时候,在给客户编写内容丰富的反馈意见或者邮件的时候等等,因此有必要做一个支持好H…

Winform开发框架之框架演化

原文地址为: Winform开发框架之框架演化 国庆去了一趟北京,回来一直忙着各种各样的事情,有公司的,有个人的,就没停过来,所以很久没有写博客了,写博客要有一个好的心情及一个好的思路&#xff0…

Winform开发框架之介绍

winform开发框架,尽量减少程序员在界面中的代码量和工作量,Model自动生成,界面以及控件自动生成,简单的逻辑自动生成。自动生成的界面已经实现简单逻辑增删改查功能。 其他开发框架都已经或多火烧实现了这些功能,如果代…

C# winform开发的考试系统

C# winform开发的考试系统,数据库sql server2014,分为教师端和学生端,两端都采用经典的三层架构,压缩包里有数据库文件,可以直接附加使用,另外还有sql脚本,也可以还原数据库使用,每行…

C#之winform(软件开发)

C#之winform(软件开发) 1.MD5加密 (1)其实就是对数据库里面的密码进行再加密,不至于让数据库一攻就破。 从这个链接先简单了解一下:MD5在线加密链接 你只能把字符串变成MD5值,但是无法将MD5值变成字符串。 using S…

WinForm框架开发教程 - 如何实现简单化开发?

在Winform开发领域开发过十多年的项目中,见证着形形色色的架构和官方技术的应用,从最早类似Winform模式的WebForm技术,到接着的JQuery界面组件,再到Asp.net Core的技术应用,以及后来的纯前端技术出现,Angul…