Appium使用真机进行ios自动化测试最新适用Mac M2和Xcode版本
以下是我根据查询到其他资料而编写,但是因为版本都过于老旧,但是系统和软件却一直更新迭代,所以以下是我又查找资料编写的最新方法,亲测有效!
一、运行iOS程序到真机
1. 在Xcode中登录自己的Apple ID
2. 打开自己的项目,配置开发者信息
3. 选择要运行的程序和设备
这里我选择我的iphone11
4. 快捷键 command r 运行
运行前一定要选择和自己手机相适配的系统版本,我这里选择的是iOS15.3
可以看到该app已经出现了,但是他又会报一个错,could not launch “test” ,接下来进入下一步。
5. 在手机中进入 设置-通用-设备管理-自己Apple ID-信任程序
6. 重新 command r 运行
二、配置WebdriverAgent
1. 下载WebdriverAgent
我之前下载过低版本WebdriverAgent,但是配置完运行的时候就报错,具体好像是因为不支持Framework,需要构建XCFramework,但是查询之后这个办法很麻烦,所以尝试重新下载新的WebdriverAgent,然后查到IOS自动化需要下载WebDriverAgent到我们的appium环境下进行编译。现在因为ios的更新版本很高,所以老的Facebook中的webDriverAgent已经不更新维护了。对于测试更高版本的ios系统(12以上),如果你在facebook的github下载进行替换是不会支持的。以后去appium下载WebdriverAgent最新的就行。最新版本的直接按下方步骤配置执行就可以,不会出现其他问题。GitHub - appium/WebDriverAgent: A WebDriver server for iOS and tvOS
2.进入到下载的WebdriverAgent项目下
3. 启动WebdriverAgent.xcodeproj
4. 配置WebdriverAgentLib 的开发者信息(报错不用管)
5. 同上配置WebdriverAgentRunner 的开发者信息(报错不用管)
6. 同上配置IntegrationApp 的开发者信息(报错不用管)
7. 针对报错信息 修改WebdriverAgentRunner 的 Product Bundle Identifier
修改为:
8. 修改IntegrationApp 的 Product Bundle Identifier
9. 数据线连接真机
10. 选择将要运行的 WebdriverAgentRunner 和真机设备
11. 使用 command u 运行
运行后他可能会一直提示输密码,解决办法:codesign 想要访问您的钥匙串中的密钥
- 稍等之后会在log中出来一个url地址
- 在浏览器中打开这个地址,如果显示一串json数据即为正确连接手机
- 并且真机会多一个程序
11. 将配置好的WebdriverAgent 项目替换到appium 的WebdriverAgent 项目
- 打开finder
- 快捷键command shift g
- 输入路径
- 回车
- 将旧项目换个名字当作备份
- 将配置好的项目放在这个目录上
三、运行自动化脚本
1. 修改对应的platformName、platformVersion、deviceName
2. 查看udid、app并增加为启动参数
3. 运行即可
-
from appium import webdriver
-
from selenium.webdriver.common.by import By
-
-
-
desired_caps = {
-
'platformName': 'ios', # 被测手机是iphone
-
'platformVersion': '14.1', # 手机版本
-
'deviceName': 'iphone 8', # 设备名,安卓手机可以随意填写
-
'udid': '28c2c7e23a7338abb3986c040f5822e9992b6857',
-
'app': 'tv.danmaku.bilianime' # ios需要
-
}
-
-
# 连接Appium Server,初始化自动化环境
-
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
-
-
# 设置缺省等待时间
-
driver.implicitly_wait(5)
-
-
# 如果有`青少年保护`界面,点击`我知道了`
-
iknow = driver.find_elements(By.ID, "text3")
-
if iknow:
-
iknow.click()
-
-
# 根据id定位搜索位置框,点击
-
driver.find_element('xpath', '//XCUIElementTypeButton[@name="搜索栏"]').click()
-
-
# 根据id定位搜索输入框,点击
-
sbox = driver.find_element('xpath', '//XCUIElementTypeTextField[@value="罗翔"]')
-
sbox.send_keys('白月黑羽')
-
# 输入回车键,确定搜索
-
driver.find_element('xpath', '//XCUIElementTypeStaticText[@name="搜索"]').click()
-
-
# 选择(定位)所有视频标题
-
eles = driver.find_elements('xpath', '//XCUIElementTypeStaticText[contains(@name,"白月黑羽")]')
-
-
for ele in eles:
-
# 打印标题
-
print(ele.text)
-
-
input('**** Press to quit..')
-
driver.quit()
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhebjcbk
-
微信小程序没声音怎么办
PHP中文网 06-15 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
微信人名旁边有个图标有什么用
PHP中文网 03-11 -
微信提示登录环境异常是什么意思原因
PHP中文网 04-09 -
微信获取用户openid失败怎么办
PHP中文网 03-26 -
photoshop怎么把印章抠出并放在另一张图上
PHP中文网 06-15 -
EhViewer(E绅士)最新版_ehviewer白色版彩色版_Ehviewer显示网络错误怎么办?e站进不去了怎么办
Evanpatchouli 09-19 -
Excel筛选和排序是灰色的怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24