识别混合应用程序中的元素 - Android

问题描述 投票:1回答:2

我是Android测试新手。我目前正在尝试自动化一个场景。我附上了应用屏幕的快照:

enter image description here

场景:

  1. 我需要点击“Clock In”。
  2. 屏幕从底部滑动,如快照中所示。
  3. 我需要选择箭头所示的项目。

开发人员说这是一个混合应用程序。这里有很多困惑,因为我可以点击“Clock In”,但我无法选择“DL 380 Memory Upgrade”。

释疑:

  1. 如何查找“DL 380内存升级”是否在Webview / Native中?
  2. 如果它是webview中的元素,如何找到它?我找到了“CLOCK IN”如下: @AndroidFindBy(xpath = "//android.view.View[@resource-id='tab-t0-0']") private AndroidElement clockInTabBtn;
selenium appium
2个回答
0
投票

如果它是WebView中的一个元素,那么它的Web和您在使用resource-id搜索时不会在Web中找到任何内容 - 仅限其本机属性。

我建议使用chrome dev工具来调试混合应用程序。你可以阅读官方docs进行设置。

基本上你需要:

  1. 连接设备
  2. 在Chrome浏览器中访问chrome://inspect/#devices
  3. 如果出现弹出窗口,请检查手机并允许USB调试
  4. 检查webViews chrome发现了什么,然后单击inspect,找到你需要的enter image description here
  5. 现在,您可以像在Selenium / Web automation qazxsw poi中一样搜索元素及其定位器
  6. 在实际搜索webView之前,不要忘记在appium测试中将上下文切换到WebView。

祝好运!


0
投票

您可以使用上下文检查可用视图,并可以使用以下代码切换到它:

enter image description here

请参考此主题以获取类似问题:Set<string> contextNames = driver.getContextHandles(); for (String contextName : contextNames) { System.out.println(contextNames); //To swicth to webview if (contextName.contains("WEBVIEW")){ driver.context(contextName); } }

© www.soinside.com 2019 - 2024. All rights reserved.