appium (一)
appium 介绍
appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的。可用于IOS和Android操作系统。重要的是Appium是跨平台的,何为跨平台,意思就是可以针对不同的平台用一套api来编写测试脚本
- 原生应用:指用android或ios的sdk 编写的应用,如纯java编写的应用
- 移动网页应用:指网页应用,类似ios中safari应用或者Chrome应用或者类浏览器的应用
- 混合应用:指一种包裹webview的应用,原生应用于网页应用内容交互的应用
环境搭建
-
appium-client:下载地址:https://github.com/appium/appium-desktop/releases
-
设置环境变量
1.
3.启动成功
-
python 安装 Appium-client 库
hello world
打开手机的设置界面
from appium import webdriver
import time
desired_caps = dict()
# 平台名称,大小写可以忽略
desired_caps['platformName'] = 'Android'
# 主版本正确即可 如:7.1 / 7.1.2 都可以
desired_caps['platformVersion'] = '7'
# 可以随便写
desired_caps['deviceName'] = 'emulator'
# 包名
desired_caps['appPackage'] = 'com.android.settings'
# 界面名
desired_caps['appActivity'] = '.Settings'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
time.sleep(5)
driver.quit()
启动过程:
1.python代码会访问本机的appium服务器,并获取driver对象
2.appium会将我们的driver对象调用的方法转化为post请求,提交给appium服务器
3.appium 通过接收到的post请求发送给手机,再由手机进行执行
基础API
# 跳转到其他app
driver.start_activity('com.android.contacts', '.activities.PeopleActivity')
# 输出包名和界面名
print(driver.current_package)
print(driver.current_activity)
# 将应用至于后台, 参数:秒
driver.background_app(seconds)
# 关闭当前app
driver.close_app()
appium 实现原理
uiautomatorviewer 的使用
位置:
使用:
-
双击直接打开uiautomatorviewer.bat,
-
模拟器或真机打开app
-
点击第二个按钮
-
点击想要获得的元素
根据uiautomatorviewer 找到的值在APPIUM 定位元素
# 找到设置-放大镜-点击
driver.find_element(By.ID, 'com.android.settings:id/search').click()
# 在搜索框输入hello, CLASS_NAME定位不唯一,如果找到多个值,会取第一个值
driver.find_element(By.CLASS_NAME, 'android.widget.EditText').send_keys('hello')
sleep(2)
# 点击返回
driver.find_element(By.XPATH, '//*[@content-desc = "收起"]').click()
注意:
find_element(): 找不到到元素会抛出异常
find_elements(): 找不到元素返回一个空的列表
本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/15940948.html