无法在 Android 7 上使用 Appium for Cordova 混合应用程序切换上下文
Can't switch context with Appium for Cordova hybrid app on Android 7
[Appium 1.7.1] [Android 7.0] [Java] [混合应用程序] [Cordova]
我尝试使用以下逻辑来切换上下文,它正在与另一个 Android OS 一起工作,例如 5.1.1,但它对 android 7.0 没有用。在来自 webview 的上下文之后,我无法专注于本机应用程序。
Set<String> availableContexts = driver.getContextHandles();
// switch to Web-view
for(String context : availableContexts) {
if(context.contains("WEBVIEW")){
logger.info("Context Name is " + context);
driver.context(context);
break;
}
}
// switch to Native app
for(String context : availableContexts) {
if(context.contains("NATIVE")){
logger.info("We are Back to " + context);
driver.context(context);
logger.info("Context Switched");
}
}
不看appium server日志就没什么好说的了
当您遇到此类问题时(停止使用新的 OS 版本更新、新的 Appium 服务器版本等)我建议打印 driver.getContextHandles()
的输出并查看您得到的结果。
这不是 Appium+Cordova 的第一个问题,无法切换上下文。如果你发现你没有得到 NAVIVE_APP
上下文,那么你最好将问题报告给 appium server project
从 web-view 切换后,我将应用程序在后台保留了一段时间,然后恢复执行:
driver.runAppInBackground(Duration.ofSeconds(1));
现在解决了将上下文视图从 Web 视图切换到本机视图时遇到的问题。
请大家推荐更好的方法。
[Appium 1.7.1] [Android 7.0] [Java] [混合应用程序] [Cordova] 我尝试使用以下逻辑来切换上下文,它正在与另一个 Android OS 一起工作,例如 5.1.1,但它对 android 7.0 没有用。在来自 webview 的上下文之后,我无法专注于本机应用程序。
Set<String> availableContexts = driver.getContextHandles();
// switch to Web-view
for(String context : availableContexts) {
if(context.contains("WEBVIEW")){
logger.info("Context Name is " + context);
driver.context(context);
break;
}
}
// switch to Native app
for(String context : availableContexts) {
if(context.contains("NATIVE")){
logger.info("We are Back to " + context);
driver.context(context);
logger.info("Context Switched");
}
}
不看appium server日志就没什么好说的了
当您遇到此类问题时(停止使用新的 OS 版本更新、新的 Appium 服务器版本等)我建议打印 driver.getContextHandles()
的输出并查看您得到的结果。
这不是 Appium+Cordova 的第一个问题,无法切换上下文。如果你发现你没有得到 NAVIVE_APP
上下文,那么你最好将问题报告给 appium server project
从 web-view 切换后,我将应用程序在后台保留了一段时间,然后恢复执行:
driver.runAppInBackground(Duration.ofSeconds(1));
现在解决了将上下文视图从 Web 视图切换到本机视图时遇到的问题。
请大家推荐更好的方法。