我在 Windows 上运行 Appium,以直接在 Android 设备上测试 Cordova 应用程序。但是,当我尝试获取上下文并切换到包含的上下文时WEBVIEW
(基本上,推荐的过程),它只返回一个上下文,NATIVE_APP
.
当我使用检查器时,我可以看到WebView
孩子和很多View
附加到它的子元素,它们与应用程序内的每个元素相关。因此,尽管它没有在 Webview 模式下显示元素树,但我可以看到它正在使用WebView
,但不知何故无法连接到该特定上下文。
对此有什么想法吗?
它的工作。我尝试了不同的功能组合,最后我找到了有效的组合。使用 AutomationName 并且不要将 platformVersion 放入功能中。
final File app = new File(appDir, "HybridSample.apk");
final DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("deviceName", "Android Emulator");
// capabilities.setCapability("platformVersion", "4.4");
capabilities.setCapability("automationName", "Selendroid");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage", "com.mcc.hybrid"); // Optional
capabilities.setCapability("appActivity", ".HybridSample"); // Optional
如果您检查服务器日志,您也可以看到这一点。可用上下文:NATIVE_APP、WEBVIEW_0
这意味着,您必须按如下方式切换上下文。
for (final String contextName : contextNames) {
System.out.println(contextName);
if (contextName.contains("WEBVIEW_0")) {
driver.context(contextName);
}
}
请注意,以上设置适用于 4.4 之前的 Android 版本。如果您有 KitKat 或更高版本,只需删除自动化名称即可。使用 AutomationName,它将无法正常工作,因为它仅返回 NATIVE_APP 作为可用上下文。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)