基于Python+appium的ios自动化测试demo(更新中)

简介: appium环境搭建可参考以下两个链接: www.jianshu.com/p/a2b79cd8b… www.jianshu.com/p/3c04e029c…

appium环境搭建可参考以下两个链接:www.jianshu.com/p/a2b79cd8b…www.jianshu.com/p/3c04e029c…

环境配置:

carthage: stable 0.31.2 (bottled), HEAD usbmuxd: stable 1.0.10 (bottled), HEAD libimobiledevice: stable 1.2.0 (bottled), HEAD npm 6.4.1 ios-deploy 1.9.4 xcpretty 0.3.0 appium-doctor  1.6.0 Appium v1.9.1 Python 3.7 WebDriverAgent 用GitHub的[github.com/facebook/We… ] Xcode10.1

每次真机开发启动顺序: 1.先在终端启动WDA(或者直接用XCode直接【WebDriverAgentRunner】-【testing】也行)

xcodebuild build-for-testing test-without-building -project /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id=设备ID test

进行端口转发

iproxy 8100 8100 设备ID
  1. 启动Appium Server

配置信息:

"deviceName": "iPhone 6s",
  "platformName": "ios",
  "udid": "601861ce25a7dae4dc3d12e6f43cd42936XXXXXX",
  "automationName": "XCUITest",
  "xcodeOrgId": "  7GTPKLXXXX",
  "xcodeSigningId": "iPhone Developer",
  "no-reset": true,
  "startIWDP": true,
  "bundleId": "com.XXXXXX"
  1. 通过元素定位器进行定位
  2. python通过appium进行脚本编写

遇到的坑:

  1. 运行安装WebDriverAgent验证是否安装成功:
export DEVICE_URL='http://localhost:8100'
export JSON_HEADER='-H "Content-Type: application/json;charset=UTF-8, accept: application/json"'
curl -X GET $JSON_HEADER $DEVICE_URL/status

http://localhost:8100/status

如果单纯WebDriverAgent运行成功,然后appuim没有反应,可能因为有些国产的iPhone设备通过手机的IP和端口还不能访问,此时需要将手机的端口转发到Mac上 : 终端输入:iproxy 8100 8100

  1. 如果存在多个版本Xcode,在安装brew包的时候,会出现兼容性问题,可以通过切换来处理
sudo xcode-select --switch /Applications/Xcode9.4.1.app
sudo xcode-select --switch /Applications/Xcode.app
  1. 两个wda模块地址 1、在命令行安装appium的时候已经集成了wda模块
/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj

2、使用appium desktop的wda模块

/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
  1. 出现报错:
A new session could not be created. Details: Appium's IosDriver does not support Xcode version 9.4.1. Apple has deprecated UIAutomation. Use the "XCUITest" automationName capability instead.
  1. 解决办法:添加 automationName = XCUITest
  2. 出现报错:
An unknown server-side error occurred while processing the command. Original error: Unknown device or simulator UDID
  1. 解决办法:
  2. 安装libimobiledevice
brew install --HEAD libimobiledevice
  1. 出现报错:
Requested 'libusbmuxd >= 1.1.0' but version of libusbmuxd is 1.0.10 Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables libusbmuxd_CFLAGS and libusbmuxd_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.
  1. 解决办法:
brew update
brew uninstall --ignore-dependencies libimobiledevice
brew uninstall --ignore-dependencies usbmuxd
brew install --HEAD usbmuxd
brew unlink usbmuxd
brew link usbmuxd
brew install --HEAD libimobiledevice
  1. 出现报错
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=4723): Max retries exceeded with url: /wd/hub/session (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x109c28908>: Failed to establish a new connection: [Errno 61] Connection refused'))

解决办法:打开appium-desktop


目录
相关文章
|
1月前
|
Python
办公自动化-Python如何提取Word标题并保存到Excel中?
办公自动化-Python如何提取Word标题并保存到Excel中?
43 2
|
21天前
|
存储 数据管理 测试技术
构建Python构建自动化测试框架(原理与实践)
当谈到软件质量保证时,自动化测试是一个不可或缺的步骤。Python作为一种简单易学的编程语言,具有丰富的测试框架和库,使得构建自动化测试框架变得相对简单。本文将介绍如何使用Python构建自动化测试框架,包括选择合适的测试框架、编写测试用例、执行测试和生成报告等方面。
构建Python构建自动化测试框架(原理与实践)
|
8天前
|
运维 监控 API
自动化运维实践指南:Python脚本优化服务器管理任务
本文探讨了Python在自动化运维中的应用,介绍了使用Python脚本优化服务器管理的四个关键步骤:1) 安装必备库如paramiko、psutil和requests;2) 使用paramiko进行远程命令执行;3) 利用psutil监控系统资源;4) 结合requests自动化软件部署。这些示例展示了Python如何提升运维效率和系统稳定性。
28 8
|
10天前
|
数据采集 人工智能 数据挖掘
让工作自动化起来!无所不能的Python
让工作自动化起来!无所不能的Python
|
14天前
|
IDE 测试技术 持续交付
Python作为一种简洁、易读且功能强大的编程语言,其自动化测试和单元测试框架的丰富性和易用性为开发者提供了极大的便利
【6月更文挑战第10天】本文探讨了Python自动化测试与单元测试框架在提升代码质量和效率中的作用。Selenium、Appium和pytest是常用的自动化测试框架,分别支持Web和移动应用的测试。unittest是Python的标准单元测试框架,提供断言方法和测试组织结构。通过制定测试计划、编写高质量测试用例、持续集成与测试、以及有效利用测试报告,开发者能提高代码质量和开发效率。
27 1
|
18天前
|
JSON 程序员 数据格式
豆瓣评分9.6!用81个项目带你从Python 3零基础到Python自动化
Python的名字来自超现实主义的英国喜剧团体,而不是来自蛇。Python程序员被亲切地称为Pythonistas。Monty Python和与蛇相关的引用常常出现在Python的指南和文档中。
|
20天前
|
数据采集 JSON API
自动化Reddit图片收集:Python爬虫技巧
自动化Reddit图片收集:Python爬虫技巧
|
23天前
|
JSON 程序员 数据格式
豆瓣评分9.6!用81个项目带你从Python 3零基础到Python自动化
Python的名字来自超现实主义的英国喜剧团体,而不是来自蛇。Python程序员被亲切地称为Pythonistas。Monty Python和与蛇相关的引用常常出现在Python的指南和文档中。
|
3天前
|
Linux 数据处理 文件存储
Python文件自动化处理(一)
`os` 模块是 Python 中用于操作系统交互的核心模块,支持文件和目录的创建、移动、复制等操作,以及处理文件路径和名称。它还提供了 `os.walk()` 函数来遍历目录树,查找文件。字符串方法如 `startswith()` 和 `endswith()` 用于过滤文件名。`glob` 模块则支持使用通配符 (`*`, `?`, `[seq]`) 查找匹配的文件。
|
3天前
|
Python
Python文件自动化处理(二)
使用Python自动化处理Excel涉及`openpyxl`库,包括打开和读取表格数据:`load_workbook()`、获取工作表、获取尺寸;读取单元格数据:`sheet['A1']`、`cell.value`;以及写入内容:`sheet['A1']='hello,Python'`、`cell.value='hello,Python'`、`sheet.append()`和插入行/列。此外,`python-docx`模块用于Word处理,支持创建、修改文档,添加标题、段落、文字、图片和表格,并能设置样式和格式。

热门文章

最新文章