这个是 webdriver 的日志信息吧,我想要的是安卓 app 内打开的 web 页面的 web 日志信息(chrome webview 的日志信息)
就是这个问题中的日志信息
更新之后遇到这个问题
--verbose 打印的是 macaca-server 的日志哦,想拿到的是 app 的 H5 内嵌页的日志信息
这个问题还是没修复,要把 Macac-android 依赖 macaca-chromedriver 版本进行一下升级
1.macaca-android 依赖的 macaca-chromedriver 为 1.0.x(1.0.45) 版本,这个版本的 versions.js 的 versionMap 中没有 webviewVersions===77 的版本
版本依赖情况看这里https://github.com/macacajs/macaca-android/blob/master/package.json#L17
app webview 指的是 app 内打开的 H5 页面,app 打开 H5 页面底层是启动 webview 并打开 H5 页面,这个时候 H5 页面会有一些浏览器级别的 log 日志,简单来说就是想拿到 app 内打开的 H5 页面的日志信息。
查了下,发现有 3 个问题:
1.macaca-android 依赖的 macaca-chromedriver 为 1.0.x(1.0.45) 版本,这个版本的 versions.js 的 versionMap 中没有 webviewVersions===77 的版本
版本依赖情况看这里https://github.com/macacajs/macaca-android/blob/master/package.json#L17
2.新本的 macaca-chromedriver@1.2.3 中的 versionMap 最新是到 76,官方已到 78,macaca-chromedriver 未及时更新
3.新本的 macaca-chromedriver@1.2.3 中 webviewVersion 的版本判断条件有问题,这里用的是===强匹配,但是入参的 webviewVersion 参数为 String 类型,具体看这里https://github.com/macacajs/macaca-chromedriver/blob/master/lib/versions.js#L78
补充下参数打印截图
找到原因了,我本地装了两个版本的 adb,两个 adb 调用冲突造成的
为什么 macaca-adb 就不会中断 macaca 的 UI 自动化进程,但是直接使用 adb 指令就会中断 macaca 的 ui 自动化进程,这个里面的原理能简单说下么?
10 台安卓设备并行任务的话,得起 10 个 macaca server?
desiredCaps 配置参数 udid 配置成指定手机的 deviceId。
https://macacajs.github.io/zh/guide/helpful-settings.html#%E5%88%9D%E5%A7%8B%E5%8C%96%E5%8F%82%E6%95%B0
文档里面 App 相关参数有写配置说明
嗯嗯 操作动作录屏的逻辑尝试用 macaca-adb 做是可以的,感谢提供的方案,下面是用例代码中插入屏幕录制的示例代码
const ADB = require('macaca-adb')
const adb = new ADB()
....
it('这是一个测试用例', function () {
adb.setDeviceId('e98c6ab9')
return driver
.waitForElementById('xxx')
.click()
.then(() => {
// 下面是录制视频的逻辑
return new Promise(resolve => {
adb.shell('screenrecord --time-limit 5 /sdcard/demo.mp4', () => {
adb.pull('/sdcard/demo.mp4', './', () => {
resolve()
})
})
})
})
.sleep(3 * 1000)
})
....
macaca-adb 为何不集成 adb 的 screenrecord 功能呢?
我试试看,不过 macaca-adb 未包含 adb screenrecord 功能,macaca-adb 使用示例有么?