Appium 驱动程序没有 WEBVIEW 上下文
Posted
技术标签:
【中文标题】Appium 驱动程序没有 WEBVIEW 上下文【英文标题】:Appium driver has no WEBVIEW context 【发布时间】:2018-04-17 17:42:04 【问题描述】:我正在为在真实 android 设备上运行的 Chrome 浏览器编写 Appium 测试。 这段代码:
Set<String> contextNames = driver.getContextHandles();
for (String contextName: contextNames)
System.out.println(contextName);
...仅返回 NATIVE_APP 和 CHROMIUM 上下文,启用 WEBVIEW 缺少什么? 或者至少,你能指定谁负责提供上下文吗? 谢谢!
Appium 1.7.1 / Selenium / Java
public static AndroidDriver<AndroidElement> capabilities() throws MalformedURLException
AndroidDriver<AndroidElement> driver;
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Device");
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
driver = new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
return driver;
【问题讨论】:
最新版本的 chromium 或最新版本的 android 甚至 webview 都显示原生元素,使用哪个版本的 android 设备? 三星 Galaxy S6 与 Android 7.0 是的,如果您使用的是android 7.0,则无需切换上下文,您可以编写本机脚本 【参考方案1】:通过 PlayStore 更新您 Android 设备的 Android System WebView。
使用新的 UIautomator,您无需将驱动程序切换到 webview。它具有识别 webView 中元素的内置功能。
您还可以使用 UIAutomator 在 Android 6.0+ 设备上查看 webView 中的元素,就像查看原生元素一样。
【讨论】:
以上是关于Appium 驱动程序没有 WEBVIEW 上下文的主要内容,如果未能解决你的问题,请参考以下文章
APPIUM ANDROID 混合应用程序:在混合应用程序中从本机导航到 Web 视图时,无法将驱动程序上下文获取为“WEBVIEW”
无法在 iOS Appium 测试(AWS Device Farm)上切换到 WebView 上下文
driver.getContexts 中缺少 WEBVIEW 上下文
使用 Appium 进行测试时,Webview 上下文不再显示