android–Appium:如何从基于离子的混合应用程序获取WEB_VIEW?

android–Appium:如何从基于离子的混合应用程序获取WEB_VIEW?,第1张

概述我使用离子框架开发了一个混合应用程序.现在是时候测试我的应用了,所以我选择了appium来自动化它.我已经准备好appium设置,我的设备安装在我的设备中通过USB连接.我编写了一个示例测试来点击登录按钮并将密钥发送到必需的字段,如email和pwd.我曾使用uiautomatorviewer查找带有id的

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

我编写了一个示例测试来点击登录按钮并将密钥发送到必需的字段,如email和pwd.我曾使用uiautomatorvIEwer查找带有ID的元素.
例如:driver.findElement(By.ID(“io.mysoft.testapp:ID / login”)).click();

到目前为止,一切都很清晰完美,但我的样本测试失败了,显示我的错误

Failed: Loginforsampleorg.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上查找元素并对其进行清晰测试.

我是一个角色开发者,我选择离子来开发混合应用程序.我的应用程序中没有类或任何内容,即编码时没有java.吃掉我大脑的问题是如何在我的离子应用程序(混合)中启用setWebContentsDeBUGgingEnabled?有没有办法从离子混合应用程序获取web_vIEw?我认为这是我的测试失败的主要原因.请任何人都有解决方案.过去一周我一直在研究这个问题.

提前致谢.

解决方法:

您需要在AndroID应用程序中启用setWebContentsDeBUGgingEnabled.请参阅此link以在AndroID应用程序中启用.

此外,一旦获得WEB_VIEW,您就可以直接在Web VIEw中查找元素.为此,您需要更新AndroID SDK.最新的UIautomator具有内置功能,可以在不切换上下文的情况下查找Web视图中的元素.

您需要具有OS版本6.0的AndroID设备来自动执行脚本,并且在自动执行脚本之后,您可以将其用于OS版本低于6.0的设备.

我已经回答了类似的问题here.你可以参考这个.

我希望这有帮助 :)

总结

以上是内存溢出为你收集整理的android – Appium:如何从基于离子的混合应用程序获取WEB_VIEW?全部内容,希望文章能够帮你解决android – Appium:如何从基于离子的混合应用程序获取WEB_VIEW?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1117355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存