Appium 当 automationName 设置为 appium 的时候,Appium 为将 webview 页面强制转换成 android 界面?

Mr Wang · 2016年04月05日 · 最后由 黑水 回复于 2016年04月07日 · 2177 次阅读

我的 capabilities

File classpathRoot = new File(System.getProperty("user.dir"));
File app = new File(classpathRoot, "res/apk/ds.apk");
capabilities.setCapability("automationName","appium"); //设置的automationName是appium
capabilities.setCapability("platformName","android");
capabilities.setCapability("platformVersion","4.4.2");
capabilities.setCapability("deviceName","P1");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage", "com.wy.client.ipsa");
capabilities.setCapability("appActivity", ".loginActivity");
capabilities.setCapability("unicodeKeyboard", "true");
capabilities.setCapability("resetKeyboard", "true");
capabilities.setCapability("noReset", "false");
capabilities.setCapability("fullReset", "false");
appiumUtil.getDriver(serverURL, capabilities);

于是我去运行我自己写好的测试用例,当运行到指定页面的时候我通过 UI Automator Viewer 查看界面元素,发现 不是一个 webview,而是和安卓原生应用那样(查找元素),如图所示

需要说明的是,我这个指定页面 其实就是一个 webview。但是当设置 automationName=appium 的时候这个 webiew 却不见了 强制转换成 安卓原生应用了,请问下大家,是不是设置 automationName=appium 的时候 结果就是这样的?

另外给大家看下 webview 页面:

共收到 4 条回复 时间 点赞

我的测试环境:
android 真机:4.4.2

当设置 automationName=selendroid 的时候 可以发现到 webview 的 context 的 ,但是如果设置成 appium 只有一个 native_app context

可以查看这个帖子 求 Appium webview 操作原理深入讲解,讨论区里面说到开启 appium server 以后,uiautomatorViewer 可以查看到 webview 里面的元素。具体什么原因还不知道。

#2 楼 @young
之前碰到的情况是,WebView 超过一屏,刚进这个界面用 UIAutomatorViewer 看是 WebView , 拖到底等加载完再用 UIAutomatorViewer 看就被识别成 native 控件了

先试试能不能用 chrome inspect 调试 WebView

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册