【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

相关推荐
星辰即远方12 小时前
天气预报总结
macos·ios·objective-c·cocoa
秋雨梧桐叶落莳14 小时前
计算器仿写总结
学习·macos·ios·objective-c·cocoa
测试开发技术17 小时前
AI 测试提效 | 告别手工写脚本,分享我的 Playwright + Skill 批量生成 UI 自动化脚本方案
自动化测试·人工智能·ui·自动化·agent·skill·ai测试
吾儿良辰19 小时前
Flutter 迎来重大变革:Material 设计系统拆分,迈向更开放的 UI 框架
javascript·flutter·ui
末代iOS程序员华仔21 小时前
iOS上架海外工具类应用合规指南:避免封号与下架风险
flutter·ios·swift
打妖妖灵滴哪吒1 天前
IOS模态窗口的作用与设计原则
前端·ui
打妖妖灵滴哪吒1 天前
前端开发/UI设计师-APP中如何进行可发现性设计
前端·ui
末代iOS程序员华仔1 天前
Flutter 开发 iOS App 上架全流程与常见问题分析
flutter·ios
末代iOS程序员华仔1 天前
Flutter开发iOS海外工具类应用上架合规指南与风险规避
flutter·ios
玛艾露贝1 天前
Browser-Use在UI自动化测试中的应用
ui