AirtestProject / AirtestProject/Airtest

[功能增强,不是bug] 关于支持app内webview的操作和录制

未关闭
#1,211 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
enhancement
主要语言
Python
星标
9.6k
派生
1.5k
PR 合并指标
30 天内没有已合并 PR

描述

不知道airtest的大牛们是否能增强一下airtest的webview功能?一个是关于app内webview的操作,一个是关于app内webview的录制

【背景】看了https://airtest.doc.io.netease.com/IDEdocs/poco_framework/poco_webview/, airtest对于app内的webview是依靠系统把webview映射成native来操作,然后用native来操作,但是很多场景下其实是需要操作webview元素;

Appium框架是支持操作app内webview元素的,原理和操作大致是
1. pc上启动一个chromedriver ,用adb做转发
chromedriver --url-base=wd/hub --port=8000 --adb-port=5037 --verbose
2. 自动化脚本设置selenium参数,依靠adb转发请求到手机app内的webview
` from selenium import webdriver
options = webdriver.ChromeOptions()
#指定连接的app
options.add_experimental_option('androidPackage', 'com.lowcode.testapp.andr')
options.add_experimental_option('androidProcess', 'com.lowcode.testapp.andr')
options.add_experimental_option('androidUseRunningApp', True)
#指定连接的手机
options.add_experimental_option('androidDeviceSerial', '55264ffe1220')

d = options.to_capabilities()

driver = webdriver.Remote(command_executor="http://127.0.0.1:8000/wd/hub", desired_capabilities=d)
sleep(5)
#连接后就可以操作webview内元素了
driver.find_element_by_id("kw").click()`

原理相对简单,

【增强1】是否可修改airtest中selenium的框架去支持操作手机app内的webview(H5)?

【增强2】操作app内的webview相对好说,非airtest的开发人员也可以打补丁实现; 但是录制还是不行,现在airtest用selenium录制是直接打开pc上的浏览器,我看录制介绍的原理如下图,好像是airtest用dev tools协议连接浏览器,获取浏览器上的操作解释成脚本。
那么是否可以再让airtest用devtools协议连接手机app内的webview? 这样在手机上操作也能录制webview脚本了。

不管如何,先行感谢您耐心读完此帖!

image

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。