问题标签 [xcuitest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2953 浏览

ios - XCUITest:以协调的方式跨两个应用程序运行测试

我正在考虑使用 XCUITest 对我的 iOS 应用程序进行 UI 测试。看起来 XCUITest 具有广泛的功能,包括使用多个应用程序的能力。但是,多应用程序支持似乎有些有限。

似乎使用 XCUIApplication 我可以使用 Bundle ID 启动另一个应用程序,甚至监控它的状态。但是,我想做的是能够为两个具有紧密交互的应用程序运行协调测试(例如,一个应用程序对另一个应用程序执行打开 URL,执行一些 UI 操作,然后返回到第一个应用程序)。

这可能仅使用 XCUITest,还是我需要一些更高级别的工具?(我认为存在一些可以做到这一点的工具,但如果可能的话,我更愿意使用 XCUITest)

理想情况下,我会将所有代码放在一个文件中,以便在两个应用程序中执行 UI 操作。但如果这是不可能的,我愿意编写单独的测试应用程序,这些应用程序有效地相互移交,在“轮到”时执行操作。但我不确定如何协调这两个测试应用程序。

0 投票
1 回答
710 浏览

ios - 在 XCUITest 中使用条件似乎不起作用

我设置了启动参数以清除用户默认值并在测试之间注销,但是,有一半的时间这似乎不起作用。我一直在寻找可能是根本原因的错误,但同时我希望减少不稳定的测试,以便开发人员对它们更有信心。因此,我在登录步骤周围添加了一个条件,该条件仅应在登录按钮存在时执行。运行测试时,就像 if 语句被完全忽略一样,测试会寻找登录按钮,然后在找不到时失败。

代码:

我没有得到什么?我试过使用.isHittable,也不管用。我在测试中放置了断点并打印了结果,app.buttons["name"].exists它返回 false 而.isHittable返回一些错误。所以看起来.exists这里应该做我所期望的。

0 投票
2 回答
1042 浏览

ios - iOS 自动化 - 从相机胶卷中选择一张照片

我正在 XCode 中编写 UI 自动化测试,需要从我的应用程序中弹出的相机胶卷屏幕中选择一张照片。我在网上查看,但似乎找不到有关如何执行此操作的任何信息。有谁知道这是否可能?

0 投票
2 回答
281 浏览

xcode - 如何为 UI 测试修改应用程序构建

我正在使用XCUITestsUI 测试我的应用程序。该应用程序当前读取ProcessInfo.processInfo.environment主应用程序目标(在 AppDelegate 内)以覆盖其一些设置以更适合 UI 测试。例如禁用 UI 动画、覆盖 API 端点等。

但是,我希望我的应用程序的发布版本没有这些覆盖,并且只有在实际构建应用程序以进行 UI 测试时才包含这些测试钩子。

实现这一目标的最佳方法是什么?

例如,是否有一个预处理器定义我只能在构建用于 UI 测试的应用程序时包含代码?或者如果为 UI 测试构建,我可以只包含源文件吗?

0 投票
1 回答
242 浏览

swift - 在 Xcode UI 测试中编辑记录的元素

记录 UI 测试后,Xcode 会使用它记录的值生成测试代码。在 Xcode 9 中,其中一些以蓝色突出显示并且似乎不可编辑:

Xcode UI 测试线

我希望能够复制/粘贴/修改这些值,而无需手动重新输入它们。有没有办法做到这一点?

0 投票
0 回答
593 浏览

appium-ios - Appium XCUITEST 1.7.2 运行自动化很慢

我在 Mac Sierra 上使用带有 XCUITest 和 Xcode v9.2 的 Appium v​​1.7.2。自动化是在物理 iPhone 6 上运行的。与 Android 相比,测试用例的执行速度非常慢,需要大量时间来查找元素并执行操作。

有什么方法可以让 iOS 自动化变得更快?

0 投票
2 回答
648 浏览

cucumber - XCUItest 系统警报

我正在尝试使用 XCUITest 和 Cucumberish 自动化我的应用程序,我无法单击系统警报,例如位置和联系人权限,但无法单击“允许”或“确定”,它正在单击“不允许”或“任意”“允许”。

这是我试图在我的步骤定义中使用的代码:

0 投票
0 回答
89 浏览

ios - 在 iOS 上进行 XCUI 测试时如何以编程方式启动可发现性覆盖

UIKeyCommand当用户将硬件键盘连接到 iOS 设备时,可发现性覆盖显示可用的 s。

用户通过按住 Command 键来启动覆盖。

XCUITests 通过允许您查询视图层次结构并对这些视图执行操作,提供了一个高级 API 来对您的应用程序进行黑盒测试。

出于本地化和屏幕截图的目的,我希望能够从XCUITestCase.

可发现性覆盖

不幸的是,XCUIKeyModifierFlags只有 macOS。

UIDevice.press仅适用于设备上的硬件按钮。

我错过了什么?

如何从XCUITestCase?

在一段时间内,我可以在应用程序代码中添加一些东西,但是我如何从应用程序中启动它呢?

0 投票
1 回答
864 浏览

swift4 - 有一种方法可以执行“长”向左滑动手势来删除 XCUITest 中的元素

我正在尝试删除一个向左滑动的元素。此选项在我的应用程序中以两种方式存在。

  1. 向左短扫,出现删除按钮,然后您可以按下它。这里没问题。
  2. 向左长滑,元素将被删除,无需再次询问。

第二个选项我无法使用 XCUIElements 函数重现它。

我发现的唯一功能是 element.swipeLeft() 但没有找到如何向左长滑动。

0 投票
2 回答
729 浏览

ios - 在 Xcode 9.2 中看不到 XCUITest 的录制红色按钮

由于我是新手XCUITest,我想通过在模拟器中录制动作来编写测试用例,但在XCTestCase课堂上看不到录制按钮。

记录测试用例的流程是什么?