【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

相关推荐
ZC跨境爬虫11 分钟前
跟着 MDN 学CSS day_44:响应式设计——让网页适配所有屏幕的完整指南
前端·css·ui·html·tensorflow
2601_9557674217 分钟前
圆偏振光AR膜实测:反射率≤0.5%+96%透光率,iPhone17 Pro贴膜久看不累——观复盾上手
人工智能·科技·ios·ar·iphone·圆偏振光
2501_915106322 小时前
iOS开发工具有哪些?iOS 开发每个阶段的实用工具
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
Digitally2 小时前
如何将数据从 iPhone 传输到传音 Infinix 手机
ios·智能手机·iphone
库奇噜啦呼3 小时前
【iOS】源码学习-KVC与KVO
学习·ios·cocoa
ZC跨境爬虫3 小时前
跟着 MDN 学CSS day_43:CSS布局挑战——从浮动到弹性盒与栅格的综合实践
前端·css·ui·html·tensorflow
黑化旺仔3 小时前
iOS - 3G share仿写总结
ios
Digitally3 小时前
适用于安卓、iOS 和电脑的最新文件共享应用评测指南
android·ios·电脑
夜空孤狼啸4 小时前
Vue Data UI:这不是图表库,是数据可视化 UI 平台
vue.js·ui·信息可视化
Bowen_J4 小时前
Flutter 屏幕旋转适配
android·flutter·ios