【问题标题】:Google Maps - Unable to locate Zoom In/Out elements谷歌地图 - 无法找到放大/缩小元素
【发布时间】:2017-05-02 10:11:55
【问题描述】:

我正在测试一个需要放大 4 倍才能到达特定区域的应用。

我使用了以下 xpath:

 @FindBy(xpath= "//android.widget.ImageView[@content-desc='Zoom in']")
 WebElement btnZoomIn;

但是,我收到以下错误:

 An element could not be located on the page using the given search parameters. 

我也尝试过使用

  List<WebElement> listImageView = driver.findElements(By.className(("android.widget.ImageView")));

但是,listImageView.size() 返回 0

下面是 UIAutomatorViewer 截图:

请帮助我解决问题。谢谢!

【问题讨论】:

    标签: android junit automated-tests appium


    【解决方案1】:

    根据视图层次结构,我看到其中一个父元素以类名“android.support.v4.widget.Drawerlayout”列出,女巫用于较低版本的 android。

    如果您要为较低版本的 Android 自动化应用,请尝试使用在 Selendroid 模式下运行的驱动程序运行测试。可以使用以下额外的所需功能进行设置:

    capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, 自动化名称.SELENDROID);

    capabilities.setCapability("automationName", "Selendroid");

    【讨论】:

    • 我正在为较新的版本自动化它。我与开发人员进行了交谈,他说布局是使用 android 片段构建的。这可能是个问题吗?我没有找到关于 appium 是否支持 Fragments 的足够详细信息。
    • 我们的地图中还集成了谷歌地图。在这里,我能够成功访问“我的位置”按钮。但是,即使 UI Automator 也无法识别附件图像 [![Google_Search_Results][1]][1] 中显示的搜索结果。所以我猜想谷歌地图活动的一些元素不能被 UI 自动化直接访问。但是,我可以使用结果与搜索栏的相对位置成功单击搜索结果,搜索栏是整个屏幕布局的一部分。 [1]:i.stack.imgur.com/SS2vu.png
    【解决方案2】:

    我找到了解决问题的方法。

    问题是在加载地图之前,我曾经收到 Android 位置权限警报。当我单击“是”时,地图已加载。 但司机无法找到这些元素。 所以,我将我的 Appium 驱动程序从 1.6.3 更新到了 1.6.4;并添加了

    capabilities.setCapability("autoGrantPermissions", true);

    之后没有显示权限警报,我能够获取 Google 地图的控制元素。

    我仍然无法弄清楚权限警报如何影响屏幕上元素的可见性。

    【讨论】:

      猜你喜欢
      • 2019-09-21
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-05
      • 2017-04-20
      相关资源
      最近更新 更多