问题标签 [xcode-ui-testing]

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 回答
2045 浏览

ios - 将外部框架连接到 UI 单元测试目标,iOS

所以,我手头已经有现有项目,我正在尝试使用苹果提供的这个新奇特的 UI 测试包来创​​建一些 UI 测试。问题是测试目标无法访问任何外部框架(我需要对其中一个框架进行一些设置)。在构建阶段添加框架并从主要目标应对框架搜索路径没有任何作用。

经过一天的浏览,我只发现了一件事,那就是“让事情变得有点不同”。通过将 Bundle Loader 和测试主机设置为$(BUILT_PRODUCTS_DIR)/App.app/App,我仍然无法将外部框架导入 test.m,但我可以导入自己为它们执行此操作的类。除非它没有破坏某些东西,否则一切都会很好。现在通过设置 Bundle 和 Host 我的 UI 测试无法执行启动方法:

它因错误而崩溃:断言失败:UI 测试失败 - 应用程序状态仍未终止。

最后,我可以从设置中删除启动方法并手动触发每个测试,因此每次执行前它都会重新启动应用程序,但这个解决方案似乎很错误(特别是对于一些更大的项目)。有谁知道处理这个问题的正确方法?

0 投票
0 回答
319 浏览

ios - 尝试运行 UI 测试时 Xcode 7 Beta 2 崩溃

我正在尝试使用 XCode 7 测试新的 UI 测试。这是我编写的测试:

当我尝试运行测试时,Xcode 构建项目,成功,当它进入“测试”阶段时,它崩溃了。我究竟做错了什么?

0 投票
14 回答
120910 浏览

ios - Xcode UI 测试用例中的延迟/等待

我正在尝试使用 Xcode 7 beta 2 中提供的新 UI 测试编写一个测试用例。该应用程序有一个登录屏幕,它在其中调用服务器进行登录。由于它是异步操作,因此存在与此相关的延迟。

在继续执行进一步步骤之前,有没有办法在 XCTestCase 中造成延迟或等待机制?

没有适当的文档可用,我浏览了类的头文件。无法找到与此相关的任何内容。

有什么想法/建议吗?

0 投票
2 回答
7072 浏览

ios - XCUIElement - 获取图像值

.Image我有一个 type和 class的变量XCUIElement。像这样的东西:

var image = app.descendantsMatchingType(.Image).elementAtIndex(0)

有没有办法可以提取实际图像,以便将其与另一张图像进行比较?

我尝试过调用该value方法,但它返回一个字符串。将其转换为UIImage总是失败。

0 投票
7 回答
21862 浏览

ios - 如何在 Xcode 的 iOS UI 测试中选择选择器视图项?

我有几个项目的选择器视图:“红色”、“绿色”、“黄色”、“黑色”。在我的 UI 测试中,我需要从中选择一个特定的项目“绿色”。我正在使用 Xcode 7 引入的 XCTest UI 测试 API。

在此处输入图像描述

到目前为止,我设法在单元测试中向上滑动整个选择器视图。这并不理想,因为它总是将选择器视图更改为底部项目(向上滑动时)。

改变选择器视图的另一种但非常相似的方法是调用pressForDuration ... thenDragToElement,这不是我想要的。

当我使用 UI 测试记录功能时,它不会记录选择器视图滚动事件。当我点击选择器视图项目时它会记录:

但这在运行测试时实际上不起作用(可能是因为它需要在点击之前先滚动选择器视图)。

这是带有测试的演示应用程序。

https://github.com/exchangegroup/PickerViewTestDemo

更新

现在可以从 Xcode 7.0 beta 6 开始选择选择器视图。

0 投票
4 回答
15536 浏览

ios - 如何在 Xcode 的 UI 测试中检查网络显示的静态文本是否存在?

我正在使用 Xcode 7 XCTest 中引入的 UI 测试 API。在我的屏幕上,我有一个从网络加载的文本。

如果我只是用exists属性检查它,测试就会失败。

如果我首先将点击或任何其他事件发送到这样的文本,它确实有效:

看起来如果我只是调用exists它会立即评估它并失败,因为尚未从网络下载文本。但我认为当我调用该tap()方法时,它会等待文本出现。

是否有更好的方法来检查是否存在从网络传递的文本?

类似的东西(此代码不起作用):

0 投票
4 回答
3743 浏览

ios - UIAutomation 和 XCTestCase:如何等待按钮激活

我正在编写一个 UIAutomation 测试用例,我需要等待用户被激活才能继续。似乎没有一种很好的方法来检查按钮以更改为启用状态。

最好的办法是等待 UI 中发生某些事情,然后再检查它的状态?

dispatch_after 和 NSTimer 似乎都不起作用。他们只是阻止然后失败。

0 投票
3 回答
7086 浏览

ios - 在 XCTest UI 测试中复制拉取刷新

我正在尝试UITableView在 Xcode 7(beta 3)中使用新的 Xcode UI 测试框架复制拉动刷新

我目前的方法是从表格拖到表格下方我能找到的任何元素。当表格下方有一个固定项目(如 a UIToolbarorUITabBar我宁愿不依赖于UITabBarorUIToolbar但我无法找到一种方法来执行拉动刷新/拖动操作而不使用XCUIElement.

刷新成功

但是当我没有工具栏/标签栏并尝试使用单元格拖动时它会失败

刷新失败

这是我的代码的相关部分:

其他失败的尝试:

  • swipeDown()(也是多次)
  • scrollByDeltaX/deltaY(仅限 OS X)
0 投票
3 回答
743 浏览

objective-c - 尝试使用 Xcode 的新 UI 测试运行多个测试失败

当我尝试在新的 Xcode beta 中同时运行多个 UI 测试时,它在第一次测试后失败,第一次测试后的每个测试都出现错误“UI 测试失败:应用程序状态仍未终止”。有人对此有修复吗?

0 投票
1 回答
1793 浏览

ios - 如何在 Xcode 7 上的 UITest 中模拟数据?

有人尝试在新的 Xcode 7 UI 测试中包含模拟数据?

  • 您是否使用过特定的框架?
  • 你是如何管理目标的?