Robotium
1.支持语言 java 2.仅支持Android系统3.不支持跨应用
Macaca
1.支持语言 java Python node.js
2.支持安卓系统和苹果系统
3.支持跨应用
Appium
1.支持语言 java,c#,python,php,perl,ruby,nodejs
2.支持安卓系统和苹果系统
3.支持跨应用
自动化工具选择的关注点
1.是否支持native,webview
2.是否支持获取toast
3.是否支持跨应用
Appium-python库安装 命令行安装(需要联网)
pip install appium-Python-Client
手机启动参数
desired_caps:负责启动服务端时的参数设置,
appium server 与手机端建立会话关系时,根据这些参数服务端可以做出相应的处理
desired_caps常用参数:
platformName 平台的名称:iOS, Android, or FirefoxOS
platformVersion 设备系统版本号
deviceName 设备号 IOS:instruments -s devices,Android: adb devices
app 安装文件路径:/abs/path/to/my.apk or http://myapp.com/app
appActivity 启动的Activity
appPackage 启动的包
unicodeKeyboard unicode设置(允许中文输入)
resetKeyboard 键盘设置(允许中文输入)
# server 启动参数
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.56.101:5555'
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True
- 脚本内启动其他app
- driver.start_activity(appPackage,appActivity)
- 关闭app
- driver.close_app() # 关闭当前操作的app,不会关闭驱动对象
-
关闭驱动对象
-
driver.quit() # 关闭驱动对象,同时关闭所有关联的app
怎么获取?
-
第一个点一下再点东西可以获取详细详细
-
第二个获取x和y的值
-
第四个返回
-
第五个刷新
-
第六个 获取代码
-
第七个搜索
-
第八个复制
-
最后一个关闭
-
# server 启动参数 desired_caps = {} desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '5.1' desired_caps['deviceName'] = '192.168.56.101:5555' desired_caps['appPackage'] = 'com.android.settings' desired_caps['appActivity'] = '.Settings' desired_caps['unicodeKeyboard'] = True desired_caps['resetKeyboard'] = True # 声明driver对象 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
1.通过id定位 方法:find_element_by_id(id_value) # id_value:为元素的id属性值
2.scroll滑动事件 1.origin_el:滑动开始的元素 2.destination_el:滑动结束的元素
3.drag拖拽事件 1.origin_el:滑动开始的元素 2.destination_el:滑动结束的元素
4.应用置于后台事件 seconds:停留在后台的时间,单位:秒
5.swip滑动事件
1.start_x:起点X轴坐标
2.start_y:起点Y轴坐标
3.end_x: 终点X轴坐标
4.end_y,: 终点Y轴坐标
5.duration: 滑动这个操作一共持续的时间长度,单位:ms
6.手指轻敲操作
1.element:被定位到的元素
2.x:相对于元素左上角的坐标,通常会使用元素的X轴坐标
3.y:通常会使用元素的Y轴坐标