appium的初始配置和使用
首先确保手机和appium都是连接好的,在手机上打开对应的APP
1、打开桌面版的appium, 点击“start server v1.21.0”进入
2、点击右上角的“放大镜”图标
3、将appium初始化配置参数都黏贴进来,保存
(注意:有“True”的值参数,要选的类型是boolean类型)
from appium import webdriver
# 告诉appium自动化测试相关的配置项
caps = {
# 被测APP所处平台-操作系统
'platformName': 'Android',
# 操作系统版本
'platformVersion': '10',
# 设备明后才能——可以随表填写,但是必须要有
'deviceName': 'JPFDU19522007559',
# 被测APP的信息————打开某个APP后输入命令:adb shell dumpsys activity recents | findstr intent
# cmd上展示的第一行命令:com.android.mediacenter/.PageActivity
# 包名——代表被测app在设备上的地址
'appPackage': 'com.android.mediacenter',
# 入口信息——被测app入口
'appActivity': '.PageActivity',
# 禁止app在自动化后重置
'noReset': True,
# 设置命令超时时间,超过后driver会关闭
'newCommandTimeout': 3600,
# 指定驱动——UI2,安卓5以下用uiautomator1,以上用uiautomator2
'automationName': 'UiAutomator2'
}
# 启动被测试app,启动之前打开appium server
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', caps) # 如果访问的是本机就用localhost或127.0.0.1, wd/hub是固定的
4、保存后的值放在了“Saved Capability Sets 1”下,找到新配置的数据,再点击“start session”
5、在确保手机上打开对应的APP后,appium左侧没有出现和手机同步的画面,可以点击刷新按钮
appium元素的定位
以图中首页中的点击按钮“更多”为例
元素定位的优先级:id(accessibility id)-》class-》xpath
1.目标元素中有resource-id且id唯一(id不是唯一的,这与ui自动化不一样)
driver.find_element_by_id()
2.目标元素中有content-desc属性
driver.find_element_by_accessibility_id()
3.目标 元素中有class
driver.find_element_by_class_name()
4.还有一种是用xpath
driver.find_element_by_xpath()
其中,xpath 定位公式://元素类型(class值)[@属性=“属性值”] 或者//*[@属性=“属性值”]
driver.find_element_by_id('com.android.mediacenter:id/uiplus_right_text').click() # id定位
driver.find_element_by_accessibility_id('更多,按钮').click() # accessibility id定位
driver.find_element_by_class_name('android.widget.TextView').click() # class定位
driver.find_element_by_xpath('//android.widget.TextView[@content-desc="更多,按钮"]').click() # xpath定位
driver.find_element_by_xpath('//*[@content-desc="更多,按钮"]').click() # xpath定位
driver.find_element_by_xpath('//*[@text="更多"]').click() # xpath定位
校验某个元素是否定位成功:点击appium上的“放大镜图标”,选择定位方式