【问题标题】:Finding elements by xpath in Appium using XCUITEST driver在 Appium 中使用 XCUITEST 驱动程序通过 xpath 查找元素
【发布时间】:2017-02-01 09:51:34
【问题描述】:

更新自动化框架的任务落在了我身上。我是 iOS 测试的新手,所以我在使用 Appium-1.6.0-beta1 中的新 XCUITEST 驱动程序时遇到了问题。

我已经启动并运行了驱动程序,但大多数元素都使用框架中的 xpaths 定位(我知道这并不理想)大多数元素没有标签、名称或可访问性标签。因此,目前 90% 的元素都排除了 :name 定位器。

xpath 似乎迎合了旧的苹果框架 (UIAutomation),如下所示:

//UIAApplication[1]/UIAWindow[4]/UIAAlert[1]

我尝试过这样的事情:

//XCUIApplication[1]/XCUIElementTypeWindow[4]/XCUIElementTypeAlert[1]

这些被传递到driver.find_element(:xpath, xpath_value) 没有运气。我似乎找不到任何关于此的文档,并且在 appium 讨论论坛上取得的成功微乎其微。

任何人都可以指出一个工作示例或文档吗?有没有更好的方法来做到这一点?

任何输入都会有帮助!

谢谢, 彼得

【问题讨论】:

  • 是否有什么特殊原因不能为相关元素添加辅助功能标签?
  • 我无法控制开发,并且由于应用程序的庞大规模,这将是一个漫长的过程。我被某些元素的 xpaths 卡住了

标签: xpath appium xctest appium-ios


【解决方案1】:

并非所有 XCUI 元素都是从 UIAutomator 直接传输的。我一直在使用的方式是在没有您需要的 xpath 的情况下运行测试,当您打开屏幕时,您想要去:

System.out.println(driver.getPageSource());

然后就是读取该 XML 以获得所需的项目。更乏味但没有 1.6BetaX 中的 appium 检查器,这是我知道如何获取 XCUI 层次结构的唯一方法。

【讨论】:

【解决方案2】:

几乎没有变通方法,您可以使用旧的图形化 appium 来查找视图元素的 xpath,以便与 Appium v​​1.6 一起使用。按照此链接中的第 1 步操作: The good old Appium inspector, with a bit workaround

【讨论】:

    【解决方案3】:

    JaysonP 的上述回答工作正常,但仍有一种方法可以使用 appium 检查器。

    1. 从终端/命令行运行您正在使用的 appium (appium 1.6.x)
    2. 打开 appium GUI 应用程序,但不要运行它
    3. 在 GUI 中,提供 App Path
    4. 确保 GUI 版本和您在终端上运行的版本使用相同的端口。再次不要从 GUI 启动 appium
    5. 在不启动 appium 的情况下单击 Inspector 按钮
    6. Inspector 窗口应该已打开,您可以使用以前的方式使用它

    【讨论】:

      猜你喜欢
      • 2017-09-14
      • 2017-07-02
      • 2023-03-18
      • 2015-11-12
      • 2020-04-25
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 2019-05-06
      相关资源
      最近更新 更多