am使用appium和机器人框架从事android自动化。为此,我正在使用机器人的辅助库。所以我想在我的应用程序中自动执行Facebook登录secenario,但是问题是应用程序上的fb登录页面已嵌入到Webview中。但是,在uiautomatorviewer中可以聚焦和查找元素,但是在运行脚本时会抛出找不到错误元素。
在这种情况下我需要做什么。我试图获取然后切换到上下文,但是没有新的或相关的上下文可用。只有NATIVE_APP。
答案 0 :(得分:0)
要使用driver.context()
方法查看Webview上下文,应启用WebView调试;开发人员必须在setWebContentsDebuggingEnabled
类中启用“ WebView
”标志。此标志启用调试加载到应用程序的任何WebViews中的Web内容(HTML / CSS / JavaScript)的功能。完成此操作后,driver.context()
方法将返回本机和webview这两个上下文。
Set<String> availableContexts = driver.getContextHandles();
System.out.println("Total No of Context Found = "+ availableContexts.size());
for(String context : availableContexts) {
if(context.contains("WEBVIEW")){
System.out.println("Context Name is " + context);
driver.context(context);
break;
}
}
注意-您不能对第三方应用程序(例如facebook)执行此操作,因为您可能无法在启用了Webview调试器的情况下重建该应用程序。