【问题标题】:How to change AppiumDriver focus to dropdown that appears on a different layer? iOS如何将 AppiumDriver 焦点更改为出现在不同图层上的下拉菜单? iOS
【发布时间】:2019-06-27 15:36:27
【问题描述】:

我正在使用 Appium,但我在 Android 上没有遇到这个问题。仅适用于 iOS。

该应用是在 React Native 上制作的。应用程序的某些部分使用下拉菜单,当您点击它们时,会显示一些选项,但会将应用程序的其余部分隐藏在阴影后面。类似的东西:

发生这种情况时,AppiumDriver 的焦点仍位于背景上,因此我无法点击/单击选项或出现在前面的任何元素。在某种程度上类似于您使用 Selenium WebDriver 时会发生的情况,并且会出现一个新的弹出窗口,您必须更改驱动程序的焦点才能与其元素交互。

我尝试过使用"getWindowsHandles()""getContextHandles()",但它不适用于这种情况。

唯一可以点击这些选项的方法是使用 X、Y 坐标,这不是非常理想,所以我的目标是找到一个更好的解决方案,在其中我可以与这些元素进行交互,将 AppiumDriver 的焦点放在选项。

【问题讨论】:

  • 你能检查一下 Appium 检查器是否可以看到你的下拉列表中的元素吗?
  • 这就是我接下来要尝试做的事情。问题是我这里没有 Mac,所以我必须使用虚拟机。
  • 到目前为止,我无法让它工作。我检查的应用是为模拟器部署的应用。在那里,使用 Appium explorer,我可以看到如何捕捉元素。但是在真实应用和appium上的执行是不同的。由于某种原因,它没有关注我需要点击的下拉选项,如果我调用 driver.getPageSource() 它会检索背景的源代码。我仍然希望让它以正确的方式工作,但我也认为我可能不得不使用 tapOnXY() 方法。

标签: ios iphone selenium appium


【解决方案1】:

您可以尝试使用代码中的辅助功能 ID(而不是在 Appium Inspector 中)来定位它。辅助功能 ID 将类似于选项的文本,例如 accessibility id = "Reload"

【讨论】:

    猜你喜欢
    • 2013-09-04
    • 2014-05-27
    • 1970-01-01
    • 2016-03-21
    • 2019-09-22
    • 2014-01-26
    • 2011-05-08
    • 1970-01-01
    • 2012-09-06
    相关资源
    最近更新 更多