gpt4 book ai didi

android - Appium:如何从基于 ionic 的混合应用程序中获取 WEB_VIEW?

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:22 24 4
gpt4 key购买 nike

我使用 ionic 框架开发了一个混合应用程序。现在是测试我的应用程序的时候了,所以我选择了 appium 来自动化它。我已准备好 appium 安装程序,我的应用程序已安装在我的设备中,并通过 USB 连接。

我编写了一个示例测试来点击登录按钮并将 key 发送到必填字段,如电子邮件和密码。我曾使用 uiautomatorviewer 来查找带有 id 的元素。例如:driver.findElement(By.id("io.mysoft.testapp:id/login")).click();

到现在为止一切都很清楚和完美,但是我的示例测试失败并向我显示类似

的错误
FAILED: Loginforsample
org.openqa.selenium.NoSuchElementException: An element could not be located on the page using the given search parameters. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 5.51 seconds

经过长时间的研究,我了解到我们必须通过driver.context("WEB_VIEW");在测试逻辑中切换到WEB_VIEW。我还尝试使用以下代码获取 WEB_VIEW:

Set<String> contextNames = ((AppiumDriver) driver).getContextHandles();
for (String contextName : contextNames) {
System.out.println("FIRST" + contextNames);//output is //NATIV_APP
((AppiumDriver) driver).context(contextName);
}

我只从数组中获取 NATIV_APP,但未打印 WEB_VIEW。我对此进行了研究,以启用 WEB_VIEW 调试,我们必须在 webView 类上调用静态方法 setWebContentsDebuggingEnabled,以便我们在 webView 上查找元素并对其进行清晰测试。

我是一名有角度的开发人员,我选择 ionic 来开发混合应用程序。我的应用程序中没有类或任何东西,即编码时这里没有 java。困扰我的问题是如何在我的 ionic 应用程序(混合)中启用setWebContentsDebuggingEnabled有没有办法从 ionic 混合应用程序中获取 web_view?我认为这是我的测试失败的主要原因。请任何人对此有解决方案。在过去的一周里,我一直在研究这个问题。

提前致谢。

最佳答案

您需要在 Android 应用中启用 setWebContentsDebuggingEnabled。请引用这个link用于在 Android 应用中启用。

此外,一旦获得 WEB_VIEW,您就可以直接在 Web View 中查找元素。为此,您需要更新您的 Android SDK。最新的 UIAutomator 具有内置功能,无需切换上下文即可在 Web View 中查找元素。

您需要操作系统版本为 6.0+ 的 Android 设备来自动化脚本,在自动化脚本之后,您可以在操作系统版本低于 6.0 的设备上使用相同的脚本。

我已经回答过类似的问题 here .你可以引用这个。

希望对您有所帮助:)

关于android - Appium:如何从基于 ionic 的混合应用程序中获取 WEB_VIEW?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41300424/

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