- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 Windows 上运行 Appium 以直接在 Android 设备上测试 Cordova 应用程序。但是,当我尝试获取上下文并切换到包含 WEBVIEW
的上下文时(基本上,推荐的过程),它只返回一个上下文,NATIVE_APP
。
当我使用检查器时,我可以看到一个 WebView
子项和附加到它的许多 View
子项,它们与每个元素相关在应用程序内。因此,尽管它没有在 Webview 模式下显示元素树,但我能够看到它正在使用 WebView
,但不知何故无法连接到该特定上下文。
对此有什么想法吗?
最佳答案
它的工作。我尝试了不同的功能组合,最后我找到了有效的组合。使用 automationName 并且不要将 platformVersion 放在 capabilities 中。
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);
}
}
请注意,以上设置适用于 Android 4.4 之前的版本。如果您有 KitKat 或更高版本,只需删除 automationName。使用 automationName 时,它将无法正常工作,因为它仅返回 NATIVE_APP 作为可用上下文。
关于android - Appium 仅在 Cordova 应用程序上显示 NATIVE_APP 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24426385/
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 Improve th
所以我正在开发一个黑 jack 程序,但我有点卡住了。我会警告大家,我对编程真的很陌生,而且,我正在项目中期......所以有一些松散的结局和未使用的变量,以及一些不必要的逻辑(用于测试),但这就是我
我正在尝试创建一个可用作 OpenGL 测试工具的示例程序。到目前为止,我的那个似乎可以工作,但似乎忽略了通过统一变量 MVPMatrix 传递的 MVP 矩阵。当我添加代码以读回制服并检查它是否确实
感谢您帮助我,这是有关我的代码的部分。 printf("Thank you, now please enter the logic gate"); scanf("%s", &C); if (C ==
public static void ejemplosString(String palabra){ char[] letras = palabra.toCharArray();
所以,我有一个 php 应用程序,通过 cgi 和 nginx 运行。我有一个 .jar 程序,用于在条形码打印机(Zebra)上打印条形码,猜猜看是什么!。 我的 php 应用程序使用 exec()
我遇到的唯一问题是 getAll() 方法,它似乎在 PersonnelController 类中的位置立即运行。我也曾在其他很多地方尝试过,但都没有成功。 setAll() 方法看起来不错,我已经测
我是一名优秀的程序员,十分优秀!