移动端-UI自动化-基础
App
1.启动app
#运行以下脚本时先启动appium-desktop
server = 'http://localhost:4723/wd/hub'
# Appium Server, 端口默认为4723*
desired_capabilities = {
'platformName': 'Android',
'paltformVersion':'9'
'deviceName': 'WAS_AL00',
'appPackage': 'com.gotokeep.keep',
'appActivity': 'com.gotokeep.keep.splash.SplashActivity'
}
driver = webdriver.Remote(server, desired_capabilities)
2.desired_capabilities
browserName :'Chrome' #启动手机浏览器
noReset:true #不要在回话前重置应用状态
Android特有:
chromedriverExecutable :''# webdriver可执行文件的绝对路径
chromeOptions :''#https://sites.google.com/a/chromium.org/chromedriver/capabilities
ios专有:
bundleId: 被测应用的bundle ID,用来启动应用
udid :连接设备的编号
autoAcceptAlerts:true 自动处理权限弹框
automationName: 'XCUITest'
微信公众号
微信是基于腾讯自研X5内核开发的混合应用的一种,区别于google原生的webview。与普通混合应用有非常多的差异,接下来以微信公众号为例介绍怎么开展X5内核应用的自动化。
1.微信配置
1.1 打开微信,在任意窗口输入:debugx5.qq.com
1.2 点击上图对话框
1.3 在打开的界面中选择-->信息->勾选[打开TBS内核Inspector调试功能]
2 PC端配置
2.1 下载chromedriver匹配版本
2.11 由以下链接查询chrome版本对应chromedriver版本
https://www.cnblogs.com/wuhl-89/p/9453885.html
2.12 由以下链接下载对应chromedriver
http://chromedriver.storage.googleapis.com/index.html
2.13 替换appium 自带chromedriver
将下载好的chromedriver放到appium-desktop安装目录下得chromedriver目录中,地址如下图所示:
2.2 获取webview页面元素
[Q1] 使用chrome://inspect/#devices 加载不出页面
解决方案:
下载uc-devtools,使用uc-devtools获取webview页面元素
或使用微信开发者工具(需开发加权限)
2.3 获取Native 元素
打开sdk自带的uiautomatorviewer.bat.
3 代码配置
[说明]以下代码为方便说明,未加任何封装。实际项目使用时,请配合框架封装后再使用
3.1 启动配置
from appium import webdriver
desired_caps = {
'platformName': 'Android', #Mandatory
'deviceName': "4e8022c2", # Mandatory
'appPackage': 'com.tencent.mm', #for 公众号
'appActivity': '.ui.LauncherUI',#for 公众号
"noReset": True,
"nativeWebScreenshot": True,
'chromeOptions': {
'androidProcess': 'com.tencent.mm:tools'
} #for 公众号
}
[提示]开启appium服务后,运行上述代码,微信成功启动。
3.2 进入公众号(此步为native操作)
WebDriverWait(driver, 30).until(lambda x: x.find_element(By.XPATH, '//android.view.View[@text="口口帮扶"]')).click() #点击公众号名称
driver.find_element(By.XPATH, "//android.widget.TextView[@text='开始学习']").click() #选择环境--测试或预发
3.3 操作公众号
#切换至微信webview,
driver.switch_to.context("WEBVIEW_com.tencent.mm:tools")
3.4 操作结束,退出driver
driver.quit()
微信小程序
1.查进程,加参数
adb shell
dumpsys activity top | grep ACTIVITY
ps pid_num
'chromeOptions': {'androidProcess': 'com.tencent.mm:appbrand0'}
手机浏览器(WebTouch)
项目使用较少,如需资料,可自行查找。
暂不做赘述。