移动端-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)

项目使用较少,如需资料,可自行查找。
暂不做赘述。

讨论数量: 0

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!