【UI自动化测试】2_IOS自动化测试 _使用模拟器

文章目录

  • [一、运行 iOS 程序到模拟器](#一、运行 iOS 程序到模拟器)
  • [二、查看 iOS 元素特征](#二、查看 iOS 元素特征)
  • 三、编写和运行自动化脚本
    • [3.1 前置代码](#3.1 前置代码)
    • [3.2 需求](#3.2 需求)
    • [3.3 需求-示例](#3.3 需求-示例)
  • 四、注意点

一、运行 iOS 程序到模拟器

1、使用 Xcode 打开要运行的程序。( Xcode 打开要测试的项目)

2、选择将要运行的 程序 和 模拟器设备。( HMiOSTest 和 iphone8)

3、快捷键 command + r 运行。(或者点击播放按钮: ▶) 在Xcode界面运行

实际上这个ios模拟器属于Xcode的一部分。

二、查看 iOS 元素特征

1、打开 appium

2、启动 appium

3、左上角菜单栏选择 appium --->new session window...

4、填写对应的启动参数,并启动。

三、编写和运行自动化脚本

3.1 前置代码

python 复制代码
from appium import webdriver

desired_caps = dict()
desired_caps['platformName'] = 'iOS'       
desired_caps['platformVersion'] = '12.1'     # ios系统版本
desired_caps['deviceName'] = 'iPhone 8'      # 这里面不能随便写,安卓可以 
desired_caps['app'] = 'com.itcast.HMiOSTest' # 相当于安卓app的包名

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

3.2 需求

  1. 点击按钮 进入列表

  2. 获取所有列表的文字内容并输入

  3. 滑动一次

  4. 点击 20

  5. 清空文本框内容

  6. 在文本框中输入 "hello"

  7. 单击返回按钮

3.3 需求-示例

python 复制代码
import time

from appium import webdriver

desired_caps = dict()
desired_caps['platformName'] = 'iOS'
desired_caps['platformVersion'] = '12.1.2'
desired_caps['deviceName'] = 'iPhone 6s Plus'
desired_caps['app'] = 'com.itcast.HMiOSTest'

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

# 1、点击 进入列表
driver.find_element_by_id("进入列表").click()

# 2、在控制台输出所有的文字内容
"""
# 在 android 中只会查找到屏幕上所显示的控件
# 在 iOS 中都会找到控件,但是如果进行操作的时候,也同样需要展示在屏幕上:比如 4、点击20这个元素
"""
text_views = driver.find_elements_by_class_name("XCUIElementTypeStaticText")
for text_view in text_views:
    print(text_view.text)

# 3、滑动一次
# driver.swipe(100, 2000, 100, 1000)  # 这个方法有的情况不好用,时灵时不灵,用下面的方法
driver.execute_script("mobile: swipe", {"direction": "up"})

# 4、点击 20
driver.find_element_by_xpath("//*[@name='20']").click()

# 5、清空文本框
text_field = driver.find_element_by_class_name("XCUIElementTypeTextField")
text_field.clear()

# 6、输入 hello
text_field.send_keys("hello!!!")

# 7、点击 返回back
driver.find_element_by_xpath("//*[@name='Back']").click()


time.sleep(5)

driver.quit()

四、注意点

1、官方已经明确表示 swipe 等 API 在模拟器 7.x - 8.x 中无法使用,真机并未提及。

2、在IOS模拟器中可以连接电脑的键盘进行输入,但是如果连接,appium 将无法工作,所以需要消选 Connect Hardware Keyboard

方法:选中模拟器---> 左上角 Hardware---> Keyboard --->消选 Connect Hardware Keyboard

相关推荐
wechatbot8881 小时前
【企业通信】基于IPAD协议的企业微信群聊管理API:群操作功能接口设计与实现
java·ios·微信·企业微信·ipad
胖虎12 小时前
我用一个 UITableView,干掉了 80% 复杂页面
ios·架构·cocoa·uitableview·ui布局
T1an-13 小时前
最右IOS开发A卷笔试题3.31
c++·ios
wzl202612134 小时前
《从协议层对抗折叠:iPad协议脚本在企微批量群发中的集成与优化》
ios·企业微信·ipad
chimooing4 小时前
【AI 自动化测试新范式】基于 OpenClaw 的智能 UI 自动化全景解析与实战
人工智能·ui·自动化
season_zhu5 小时前
聊聊我最近都干了些什么,AI 时代的手动撸码人
flutter·ios·ai编程
FreeBuf_5 小时前
俄罗斯关联APT组织TA446利用DarkSword漏洞工具包针对iPhone用户发起钓鱼攻击
ios·iphone
Digitally5 小时前
三种将文件从iPhone传输到 Windows 11的方法
ios·iphone
搜佛说5 小时前
14-第14章-扩展点与插件机制
物联网·ios·开源·软件工程·边缘计算·iphone
程序员杰哥5 小时前
Web UI自动化测试之PO篇
自动化测试·软件测试·python·selenium·测试工具·ui·测试用例