gpt4 book ai didi

android - Appium 仅在 Cordova 应用程序上显示 NATIVE_APP 上下文

转载 作者:太空狗 更新时间:2023-10-29 12:41:54 26 4
gpt4 key购买 nike

我在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com