原文来自:Potter个人博客
环境准备
- NodeJS v12.13.1
- JDK 1.8.0_191
- Android SDK
- Appium-Python-Client
具体教程请看: 自动化测试-02:实践
步骤如下
- AppWebView开启调试模式:
setWebContentsDebuggingEnabled(true); - 获取Android Chrome 版本:
adb shell am start -a android.intent.action.VIEW -d https://liulanmi.com/labs/core.html - 根据Android Chrome版本,下载对应ChromeDriver驱动 下载地址
- 将下载的ChromeDriver Copy 至 Appium 目录,比如我的Appium目录:
C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-chromedriver\chromedriver\win - 启动APP后并跳转App内嵌的WebView页面,使用Chrome获取WebView中的元素
如下图所示:打开Chrome 地址栏输入:chrome://inspect
案例代码
# 案例:自动化测试-登录
from appium import webdriver
from selenium.webdriver.common.by import By
import time
desired_caps = {}
desired_caps["platformName"] = "android"
desired_caps["platformVersion"] = "7.1.2"
desired_caps["deviceName"] = "127.0.0.1:62001"
desired_caps["appPackage"] = "com.guide.custom"
desired_caps["appActivity"] = "com.anyapps.Activity.AALaunch"
desired_caps["noReset"] = "true"
desired_caps["autoGrantPermissions"] = "true"
desired_caps['chromeOptions'] = {"w3c":False}
desired_caps['showChromedriverLog'] = True
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
view_context = "WEBVIEW_com.guide.custom"
driver.switch_to.context(view_context)
time.sleep(5)
print(driver.current_context)
# 获取账号和密码元素,输入账号密码
inputAccount = driver.find_element_by_id("account")
inputAccount.send_keys('186xxxxxxx')
inputPassword = driver.find_element_by_id("password")
inputPassword.send_keys('123456')
# 获取登录元素,点击登录
loginBtn = driver.find_element_by_class_name('confirmDisable')
loginBtn.click()
Appium 调试App 原理图
参考文献:
以上: 如发现有问题,欢迎留言指出,我及时更正