使用 XCUITEST 驱动程序在 Appium 中通过 xpath 查找元素

2023-12-22

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

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

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

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

我尝试过这样的事情:

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

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

谁能给我指出一个工作示例或文档?有更好的方法来做到这一点吗?

任何输入都会很有帮助!

谢谢, 彼得


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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 XCUITEST 驱动程序在 Appium 中通过 xpath 查找元素 的相关文章

随机推荐

  • 过渡在 IE 中不起作用

    我正在开发自己的网站 它的 功能 之一是当我将鼠标悬停在标题上时 它会向下滑动 这在所有主流浏览器上都运行良好 但是 对于 IE 10 情况并非如此 这是页面来源 这是包含的头文件
  • C 函数参数中的 __cdecl 有什么用

    我正在学习C语言 在学习的过程中我发现了一行对我来说全新且陌生的代码void PullDown char int void cdecl void 我只知道第一个和第二个参数 我想知道第三个参数 cdecl 之后的两个星号有什么用 我从这个语
  • 通过 WordPress 简码将自定义文本添加到联系表单 7

    我正在使用联系表单 7 需要在表单的某处添加自定义文本 我从高级自定义字段的子字段中使用 PHP 获取自定义文本 我知道 有一个名为 Contact Form 7 Dynamic Text Extension 的额外插件 https de
  • 使用 FileReader 的 readAsBinaryString 和 readAsText 之间的区别

    举个例子 当我读到 字符时 u03C0 从使用 FileReader API 的文件中 当我使用以下命令读取它时 我会得到 pi 字符FileReader readAsText blob 这是预期的 但是当我使用FileReader rea
  • 在 JavaScript 中将 RSS pubDate 解析为 Date 对象

    我该怎么做 2010 年 2 月 2 日星期二 19 34 21 等 GMT 它开箱即用 JavaScript 中的 Date 对象可以通过传递一些标准时间格式来设置 RSS 中使用的格式就是其中之一 Example var pubDate
  • Java 函数的递归版本在第一次调用时比迭代慢,但之后更快。为什么是这样?

    对于一项作业 我目前正在尝试测量矩阵链问题的迭代解决方案与递归解决方案之间的性能 空间 时间 差异 问题的要点和我用于迭代版本的解决方案可以在这里找到 http www geeksforgeeks org dynamic programmi
  • R 日期时间序列缺失值

    我正在从 chr 转换为格式为 Y m d H M S 的 POSIXct 但是 数据集中的某些时间没有秒部分 S 因此当我转换为DateTime 不带秒的时间将作为空单元格返回 NA我如何确保这种情况不会发生 我希望它们全部作为 Date
  • 使用实体框架 Code First 进行事务处理

    有一个答案here https stackoverflow com questions 815586 entity framework using transactions or savechangesfalse and acceptall
  • 使用签名检测 PDF 更改

    我正在开发一个 Web 应用程序 允许用户下载 PDF 文件 他们必须使用其证书使用 Adob e Acrobat 对该文件进行签名 然后上传回网络 我在用着C and itextsharp 5 5 9 0用于所有与 PDF 相关的工作 现
  • 链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”

    我正在尝试运行以下语句 但收到下面的错误消息 我无休无止地研究答案 但没有一个对我有用 我正在运行 Office 365 64 位 我已经加载了 Microsoft Access 数据库引擎 64 位 这是在带有 SSDT 的 Visual
  • Octave 中行向量的转置导致字符串转义字符出现问题

    在 Sublime 中 我尝试对 Octave 文件中的行向量进行转置 如下所示 y 4 5 6 y transpose y 但是每当我尝试在 Octave 中运行它时 它的行为就好像转置运算符 的引入是字符串的开头 并且忽略以下代码行 我
  • Openssl 显示不同的服务器证书,而浏览器显示正确

    我正在使用 openssl s client showcerts connect test abc com 443 state debug 检查服务器证书 服务器使用的是nginx 但是当我请求上述 openssl 时 服务器证书显示为 x
  • 应用程序因 DispatchSemaphore wait() 冻结

    我创建了一个函数 getFriends 它从 firestore 读取用户的好友列表 并将每个好友放入 LocalUser 对象 这是我的自定义用户类 中 以便在表格视图中显示好友列表 我需要 DispatchSemaphore wait
  • CAML 查询:如何从结果集中过滤文件夹?

    我使用 caml 查询来选择用户修改或添加的所有文档 查询在指定网站集的所有子网站上递归运行 现在的问题是我无法删除也是结果集一部分的文件夹 现在我正在从结果数据表中过滤它们 但我想知道 是否可以仅使用 caml 从结果集中过滤掉文件夹 这
  • 适用于 iPhone 的 Sparrow 或 Cocos2D 2D 游戏?

    我想为 iPhone 开发一款游戏 对于 iPhone 中的 2D 游戏开发 从长远来看 哪一个会更好 Sparrow 还是 Cocos2D 我看到 Sparrow 框架的文档很少 但 Sparrow 论坛表示与 Cocos2D 相比 在
  • 有没有办法加快 MATLAB 中的串联速度?

    我想沿着三维连接 z cat 3 A B C 很多很多次 如果我沿着第二个维度这样做的话 z A B C 会比 z cat 2 A B C 可以在三维空间上完成类似的事情吗 或者有其他方法可以加快速度吗 有一些索引选项可以获得比cat 3
  • Kubernetes 检查“silent”pod 是否完成执行

    假设我定义了一个 pod 它只运行几段代码 然后退出 我需要确保该 Pod 退出 然后才能允许其他 Pod 运行 实现这一点的最佳方法是什么 我曾经通过执行网络请求来检查 pod 是否准备好 例如一旦准备好 一些 webapps pod 将
  • 为什么 .paintComponent() 定义在 JComponent 上?

    很抱歉 如果我的问题由于是理论上的问题而无法适应 Stack Overflow 的要求 但我不知道还能问哪里 在过去的几周里 我一直在尝试更好地了解 Swing API 的工作原理及其组件 以便创建我自己的自定义组件 我读过大量的教程 在这
  • 什么会导致链接服务器返回有限数量的数据?

    我们链接到 sql server 2012 实例的服务器出现问题 我们通过 odbc 或 oledb 连接链接的服务器是 Pervasive SQL 只要结果集很小 就可以通过这种方式从链接服务器中进行选择 select from link
  • 使用 XCUITEST 驱动程序在 Appium 中通过 xpath 查找元素

    更新自动化框架的任务落到了我的身上 我是 iOS 测试新手 因此在使用 Appium 1 6 0 beta1 中的新 XCUITEST 驱动程序时遇到问题 我已启动并运行驱动程序 但大多数元素是使用框架中的 xpath 定位的 我知道一点也