在克隆代码:appium-uiautomator2-server后,按照说明文档README.md中所说,进行构建
gradle clean assembleE2ETestDebug assembleE2ETestDebugAndroidTest |
在克隆代码:appium-uiautomator2-server后,按照说明文档README.md中所说,进行构建
gradle clean assembleE2ETestDebug assembleE2ETestDebugAndroidTest |
欢迎关注我的Appium知乎专栏:自定义Appium之路
当appium脚本的uiautomationName设置为UiAutomator2时,就会启动appium-uiautomator2-driver这个driver来执行你的脚本测试,而它的系统对话框的处理跟UIAutomator1的就不一样了,更加复杂一点。
因为UIAutomator2是一个apk形式的,本身可以认为是一个应用,是需要安装的,所以在启动UIAutomator2之前,就会碰到系统对话框的问题,此时,我们需要借助UIAutomator1来做这件事。
欢迎关注我的Appium知乎专栏:自定义Appium之路
当Appium脚本中的uiautomationName设置为UiAutomator1时,会启动UIAutomator1的Driver来测试你的Appium脚本,在脚本之前之前,会有很多权限框弹出,此时就需要我们的UIAutomator1来自动处理这样的对话框,并且要在安装apk之前就启动UIAutomator1的服务。
很不幸,appium的代码中,是先安装Appium Setting APK和被测应用的,那怎么改呢?
欢迎关注我的Appium知乎专栏:自定义Appium之路
通常的执行方式是:
# 下载npm库中的appium |
但如果是本地appium代码怎么执行呢?请看如下shell脚本
这是我的”独立开发者”微信群中网友问的,我之前还从来没想过这个问题,自认为买了就是我的。
但仔细一想,其实这件事没有那么简单,比如我在阿里云万网买了域名,我可以对这个域名做任何操作,然而这个操作是建立在阿里云这个平台上的,也就是说,阿里云也可以随时强制收回这个域名,可以强制更改这个域名的所有者,可以禁用转移等,也就是说,你买了的这个域名,真正的所有者是这个平台,是阿里云!
这个driver是UIAutomator1的driver,负责UIAutomator1的服务启动、停止、命令接收和执行。
本身appium-android-driver是一个nodejs工程,它还套着一个bootstrap的maven工程,这个maven工程就是用来打包UIAutomator1的,会再bootstrap/bin的目录下构建生成一个叫AppiumBootstrap.jar的供外层的NodeJS工程使用。代码在appium-android-driver/lib/bootstrap.js
的start函数中