iOSAutomation
最后更新:20210903
项目功能
iOS自动化测试:用Python
代码实现iOS设备的自动化操作
目前主要去(跑通和调试)自动化操作iPhone中的微信的公众号
依赖库
- 客户端
- 服务端
- appium/WebDriverAgent: A WebDriver server for iOS that runs inside the Simulator
- fork自
- facebookarchive/WebDriverAgent: A WebDriver server for iOS that runs inside the Simulator
- 此facebook的WebDriverAgent已archive,不再更新
- facebookarchive/WebDriverAgent: A WebDriver server for iOS that runs inside the Simulator
- appium在Facebook基础上,继续维护和更新
- 其他解释
WebDriverAgent
简称为WDA
- 属于W3C的WebDriver的一种实现=WebDriver的server
- 已被别人所采用
- fork自
- appium/WebDriverAgent: A WebDriver server for iOS that runs inside the Simulator
源码改动
openatx/facebook-wda
自己对于 openatx/facebook-wda
做了些优化,改动了很多代码,主要有:
- 新增
- Session
get_settings
set_settings
setSnapshotTimeout
- Selector
_wdasearch_single
find_element_id
find_element
- Session
- 优化
- Session
_percent2pos
- 支持
float
类型的非0~1
之间的x
和y
值
- 支持
- Selector
get
- 默认只搜索和返回单个元素
- Session
- 等等
最新文件放在:
- 最新版:
0.7.2
wdaTest/optimized/wda/v0.7.2/__init__v0.7.2_merged.py
- 旧版:
0.6.2
wdaTest/optimized/wda/v0.6.2/__init__v0.6.2_updated.py
初始化
pip3 install facebook-wda
安装了openatx/facebook-wda后,要修改本地wda
的代码。
本地wda
代码位置:可通过
pip show facebook-wda
查看到:
Location: /Users/limao/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/site-packages
对应路径就是:
/Users/limao/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/site-packages/wda/__init__.py
然后把项目中的最新改动:__init__v0.7.2_merged.py
覆盖到:
/Users/limao/.pyenv/versions/3.8.0/Python.framework/Versions/3.8/lib/python3.8/site-packages/wda/__init__.py
即可。
调试
启动server端=host端
两种方式:
- 命令行:
xcodebuild
终端中
进入目录:
cd refer/WebDriverAgent
再去运行:
CUR_UDID=$(idevice_id -l | head -n1)
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=$CUR_UDID" test
或:
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=`idevice_id -l | head -n1`" test
- 图形界面:
XCode中Test
Xcode
-> Product
-> Test
然后能在log中看到类似这种输出,就说明服务启动成功了:
2020-02-27 09:24:42.711437+0800 WebDriverAgentRunner-Runner[619:225570] Built at Feb 25 2020 17:47:05
2020-02-27 09:24:42.845352+0800 WebDriverAgentRunner-Runner[619:225570] ServerURLHere->http://192.168.31.43:8100<-ServerURLHere
2020-02-27 09:24:42.871504+0800 WebDriverAgentRunner-Runner[619:225733] Using singleton test manager
其中
是此时的服务端的URL
注:
部分手机,比如此处
iPhone 8 Plus
,无法用IP,只能换用端口转发
iproxy 8100 8100
然后去访问:
比如:
即可。
更新细节详见单独教程:
运行代码调试
VSCode中调试代码:
wdaTest/wdaTest.py