【Mac + Python3.6 + facebook-wda】之IOS自动化(二):安装facebook-wda库并编写简易自动化测试脚本,,上一篇介绍完如何安装
【Mac + Python3.6 + facebook-wda】之IOS自动化(二):安装facebook-wda库并编写简易自动化测试脚本,,上一篇介绍完如何安装
上一篇介绍完如何安装WDA,接下来开始正式安装开发库并编写自动化脚本。
目录:
一、安装facebook-wda库
二、通过WEditor定位元素
三、附录:学习资料
一、安装facebook-wda库
运行命令行安装:
pip install --pre facebook-wda
或者使用pycharm中,Preferences->Project->Project Interpreter->【+】(加号), 搜索:facebook-wda,并安装
举个栗子,页面元素定位,如下图,class、name一一展示:
通过“ideviceinstaller -l”或者其他工具查找到APP软件的bundleId
$ ideviceinstaller -lTotal: 5 appscom.ysr.scancode - 二维码扫描器 3com.apple.test.WebDriverAgentRunner-Runner - WebDriverAgentRunner-Runner 1com.sogou.sogouinput - 搜狗输入法 142709com.netease.cloudmusic - 网易云音乐 1044com.leqimea.recorderAudio - PP助手 10000
上代码:
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/10/16 11:42# @Author : zc# @File : test.pyimport unittestimport wdawda.DEBUG = False # default Falsewda.HTTP_TIMEOUT = 10.0 # default 60.0 secondsbundle_id = "com.chen.CityMineSafetyOne" (通过上面获得)c = wda.Client(‘http://localhost:8100‘)# 启动应用s = c.session(bundle_id)class Test_safety(unittest.TestCase): def setUp(self): print("=======start!=======") pass def tearDown(self): print("=======stop!=======") pass def test1(self): # class、name定位参考网易图所示,这里只是举个栗子,并不是网易代码 s(name=‘home btn newtask‘,className=‘Button‘).tap()if __name__ == ‘__main__‘: unittest.main()
运行成功!!!!
二、通过WEditor定位元素 返回目录
之前做uiautomator2-Android自动化时,用到了这个进行定位元素,facebook-wda-IOS自动化也可以通过这个进行定位元素。
首先,启动weditor
python -m weditor
有时候会报错:OSError: [Errno 48] Address already in use
提示您地址已经被占用,所以我们可以查看weditor的17310端口,看看哪些软件占用了此端口:
# 查看端口使用情况lsof -i tcp:17310COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEGoogle 396 zhan 156u IPv6 0x9b9eee3e3dae5dfb 0t0 TCP localhost:58732->localhost:17310 (ESTABLISHED)python3.6 8244 zhan 4u IPv6 0x9b9eee3e34507f3b 0t0 TCP *:17310 (LISTEN)# 其中谷歌和py3.6占用了端口,选择杀死进程kill 396kill 8244
接着再启动weditor,发现还是报错:
ModuleNotFoundError: No module named ‘atx‘
需要安装atx:
pip install atx==1.1.2.dev18
$ pip install atx==1.1.2.dev18Collecting atx==1.1.2.dev18 Downloading https://files.pythonhosted.org/packages/16/75/f47630ae898e61900f0c32165916330bce718aa048e4abd1ce8408cef9ff/atx-1.1.2.dev18-py3-none-any.whl (2.2MB) 100% |████████████████████████████████| 2.2MB 600kB/s Collecting imageio==1.5 (from atx==1.1.2.dev18) Downloading https://files.pythonhosted.org/packages/e8/b7/8d78cb388c1aa8648c65601572fb4c50cc36f5eff6b22f0ec69ef0d63ecc/imageio-1.5.zip (3.3MB) 100% |████████████████████████████████| 3.3MB 444kB/s Requirement already satisfied: Pillow>=2.7.0 in /Users/zhan/.pyenv/versions/3.6.1/lib/python3.6/site-packages (from atx==1.1.2.dev18)Collecting PyYAML==3.11 (from atx==1.1.2.dev18) Downloading https://files.pythonhosted.org/packages/75/5e/b84feba55e20f8da46ead76f14a3943c8cb722d40360702b2365b91dec00/PyYAML-3.11.tar.gz (248kB) 100% |████████████████████████████████| 256kB 3.7MB/s Collecting colorama==0.3.7 (from atx==1.1.2.dev18) Downloading https://files.pythonhosted.org/packages/b7/8e/ddb32ddaabd431813e180ca224e844bab8ad42fbb47ee07553f0ec44cd86/colorama-0.3.7-py2.py3-none-any.whlCollecting numpy>=1.11.0 (from atx==1.1.2.dev18) Downloading https://files.pythonhosted.org/packages/0a/2b/726b7d4e4ba844d4805c52b8e05299a5f49bc16c69ca0fa8e1964c0871fe/numpy-1.15.2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (24.5MB) 100% |████████████████████████████████| 24.5MB 60kB/s Collecting tqdm==4.5.0 (from atx==1.1.2.dev18) Downloading https://files.pythonhosted.org/packages/83/4f/50d87b628eeae681eb9b5217840a215808ce3cf42c0d72752be286b1bfdf/tqdm-4.5.0-py2.py3-none-any.whlCollecting facebook-wda==0.1.1.dev1 (from atx==1.1.2.dev18) Downloading https://files.pythonhosted.org/packages/4b/01/fbe44ad81ef016f1cc4fb149ce684da1cff163464a6168a7b87c4bd4597d/facebook_wda-0.1.1.dev1-py3-none-any.whlRequirement already satisfied: requests>=2.9.1 in /Users/zhan/.pyenv/versions/3.6.1/lib/python3.6/site-packages (from atx==1.1.2.dev18)Collecting futures==3.0.5 (from atx==1.1.2.dev18) Downloading https://files.pythonhosted.org/packages/55/db/97c1ca37edab586a1ae03d6892b6633d8eaa23b23ac40c7e5bbc55423c78/futures-3.0.5.tar.gzCollecting maproxy==0.0.12 (from atx==1.1.2.dev18) Downloading https://files.pythonhosted.org/packages/2e/12/41e87a13b3e64373f73029ad1e826084afa64d4cdfa17baadc3ccde2ee02/maproxy-0.0.12.zipCollecting atx-uiautomator==0.2.12.dev6 (from atx==1.1.2.dev18) Downloading https://files.pythonhosted.org/packages/42/40/bde514f5eb29d267cc06ab2bf890e972edf46345e24ebdae44d79b0f87e1/atx_uiautomator-0.2.12.dev6-py3-none-any.whl (2.9MB) 100% |████████████████████████████████| 2.9MB 514kB/s Collecting AxmlParserPY==0.0.2 (from atx==1.1.2.dev18) Downloading https://files.pythonhosted.org/packages/38/2b/50f92036bd6d46cdb7b581f4a0a4c5c0081ccc1235e0db96b640ed0fdcba/AxmlParserPY-0.0.2.tar.gzRequirement already satisfied: tornado>=4.4 in /Users/zhan/.pyenv/versions/3.6.1/lib/python3.6/site-packages (from atx==1.1.2.dev18)Collecting aircv==1.4.5 (from atx==1.1.2.dev18) Downloading https://files.pythonhosted.org/packages/66/5e/e58fd28a7a96e23a87cecf61f5d57acbae88812f22192afcbdbbb6015499/aircv-1.4.5.tar.gz (4.0MB) 100% |████████████████████████████████| 4.0MB 402kB/s Requirement already satisfied: six>=1.10.0 in /Users/zhan/.pyenv/versions/3.6.1/lib/python3.6/site-packages (from facebook-wda==0.1.1.dev1->atx==1.1.2.dev18)Requirement already satisfied: idna<2.8,>=2.5 in /Users/zhan/.pyenv/versions/3.6.1/lib/python3.6/site-packages (from requests>=2.9.1->atx==1.1.2.dev18)Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Users/zhan/.pyenv/versions/3.6.1/lib/python3.6/site-packages (from requests>=2.9.1->atx==1.1.2.dev18)Requirement already satisfied: certifi>=2017.4.17 in /Users/zhan/.pyenv/versions/3.6.1/lib/python3.6/site-packages (from requests>=2.9.1->atx==1.1.2.dev18)Requirement already satisfied: urllib3<1.24,>=1.21.1 in /Users/zhan/.pyenv/versions/3.6.1/lib/python3.6/site-packages (from requests>=2.9.1->atx==1.1.2.dev18)Installing collected packages: imageio, PyYAML, colorama, numpy, tqdm, facebook-wda, futures, maproxy, atx-uiautomator, AxmlParserPY, aircv, atx Running setup.py install for imageio ... done Running setup.py install for PyYAML ... done Found existing installation: facebook-wda 0.2.1 Uninstalling facebook-wda-0.2.1: Successfully uninstalled facebook-wda-0.2.1 Running setup.py install for futures ... done Running setup.py install for maproxy ... done Running setup.py install for AxmlParserPY ... done Running setup.py install for aircv ... doneSuccessfully installed AxmlParserPY-0.0.2 PyYAML-3.11 aircv-1.4.5 atx-1.1.2.dev18 atx-uiautomator-0.2.12.dev6 colorama-0.3.7 facebook-wda-0.1.1.dev1 futures-3.0.5 imageio-1.5 maproxy-0.0.12 numpy-1.15.2 tqdm-4.5.0You are using pip version 9.0.1, however version 18.1 is available.You should consider upgrading via the ‘pip install --upgrade pip‘ command.
在安装cv2,作用是读取图像相关的:
pip install opencv-python
再次运行weditor,又发生错误:
from atx import ioskit
File "/Users/zhangc/.pyenv/versions/3.6.1/lib/python3.6/site-packages/atx/ioskit.py", line 199
print dev.screenshot(‘i.png‘)
^
SyntaxError: invalid syntax
语法错误,经过大神调试得知原来是,atx版本问题,升级atx版本。
# 查看pip下各个库的版本pip list# 得知atx (1.1.2.dev18)pip (9.0.1)# 升级pippip install --upgrade pip# 升级atxpip install -U atx# 再查看pip下各个库版本 Package Version --------------- ----------- atx 1.2.0 pip 18.1 # 最后再运行weditorpython -m weditor
weditor终于启动成功!!!!!
浏览器自动打开weditor,选择IOS,输入地址:http://localhost:8100,点击【Connect】连接,出现小绿叶??表示连接成功,再点击蓝色按钮【Reload】刷新如下:
至此facebook-wda安装以及元素定位讲解到此为止。
三、附录:学习资料 返回目录
参考文章:
感谢:
codeskyblue的《使用 Python 库 facebook-wda 完成网易云音乐 iOS 客户端的自动化测试 (示例)》
wonderfei的《基于Facebook-WDA的iOS-UI自动化测试》
后续facebook-wda自动化框架介绍请参照github上的地址:https://github.com/openatx/facebook-wda
【Mac + Python3.6 + facebook-wda】之IOS自动化(二):安装facebook-wda库并编写简易自动化测试脚本
相关内容
- python读取文件,python读取的1变成\ufeff1,,‘\ufeff1‘
- python中自定义函数的保留字是,python怎么赋值,Python使用
- python 画K线图,用python画星空,#数据源:http:
- python开发之旅——面向对象【人狗大战】,很久没看过
- python threading.current_thread().name和.getName()有什么区别,
- 尝试用 Python 写了个病毒传播模拟程序,,病毒扩散仿真
- Python minidom模块(DOM写入和解析XML),java有哪些模块,一、
- 使用 python 将 "\r\n" 转换为 "\n&
- python中安装pandas,,在运行网上找的代码时
- Python3 的函数(2),,1、形参和实参def
评论关闭