- apk设置,找开发开启webview调试模式。app设置setWebContentsDebuggingEnabled=True
- webview / chromedriver.exe(注意是手机端的驱动,版本是95的)
- 调试工具(网页版chrome://inspect或devtools工具都行)
- 原生界面操作
- 进入webview,从 原生界面 切换到 webview
- 进行网页操作
- 退回到原生环境,webview 切换到 原生界面
具体代码如下:
import time
from appium.webdriver import Remote
# 启动一次请求
caps = {"platformName": "Android",
"udid": "emulator-5554",
"appPackage": "com.lemon.lemonban",
"appActivity": ".activity.WelcomeActivity",
"chromedriverExecutableDir": "E:driver"
}
driver = Remote(command_executor='http://127.0.0.1:4723/wd/hub',
desired_capabilities=caps)
# 设置隐性等待
driver.implicitly_wait(10)
# 找到师资团队的按钮
driver.find_element('xpath', '//*[@text="师资团队"]').click()
# 进入webview页面
# driver.contexts = ['NATIVE_APP', 'WEBVIEW_com.lemon.lemonban']
# 两种编写方式
# driver.switch_to.context('WEBVIEW_com.lemon.lemonban')
driver.switch_to.context(driver.contexts[-1])
# 找到元素并点击
driver.find_element('xpath', '//*[@id="m-header__nav"]').click()
# 退出webview页面,切换到原生页面
driver.switch_to.context('NATIVE_APP')
time.sleep(5)
driver.find_element('xpath', '//*[@resource-id="com.lemon.lemonban:id/navigation_my"]').click()
driver.quit()
注意:
- chromedriver 根据版本下载到某个目录
- chromedriverExecutableDir caps 指定目录
- 从原生进入到网页,driver.switch_to.context()
小程序和公众号测试步骤:
- 在微信的原生页面操作
- 当点击进入小程序后,进入小程序环境(webview)
- 切换到webview,driver.switch_to.context()
- 网页的自动化测试
固定套路:
- 进入微信
- 下拉
- 定位小程序,点击
- driver.switch_to.context()
总结appium操作app的重点:
- 元素定位,id,text,xpath,例外:toast
- 辅助工具 appium inspect ,uiautomatorviewer
- 点击,输入操作,swipe(封装),toast,start_activity,混合应用



