问题标签 [earlgrey]

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 投票
0 回答
63 浏览

ios - Earlgrey 在运行测试用例时可以获取实例数据吗

我是 Earlgrey 运行的 UITest 的新手。我知道从 XCTestCase 继承的库,所以我虽然天气可以获取 UI 元素的数据。但我在 Earlgrey 文档中找不到用于查询实例信息的相关 api。有可能达到吗?感谢任何建议?

0 投票
1 回答
83 浏览

earlgrey - 在单元测试目标中添加 UI 测试

我不想污染/混合我在UNIT TESTING TARGET中编写的单元测试用例(使用 QuickSpec 编写)与来自 EarlGrey 的 UI 测试。

是否有任何替代方法可以将 EarlGrey 测试添加到UI TESTING TARGET中?

0 投票
1 回答
323 浏览

earlgrey - 即使元素存在于层次结构中,也会引发 kGREYNoMatchingElementException

代码

例外

异常名称:NoMatchingElementException 异常原因:找不到 UI 元素。动作例外:{“动作名称”:“Tap”,“元素匹配器”:“(((respondsToSelector(isAccessibilityElement)&& isAccessibilityElement)&&accessibilityLabel('お知らせ'))&&可交互)”,“恢复建议”:“检查如果元素存在于下面打印的 UI 层次结构中。如果存在,请调整匹配器,使其准确匹配元素。}

异常详细信息:错误跟踪:[ {“描述”:“交互无法继续,因为找不到所需的元素。”,“错误域”:“com.google.earlgrey.ElementInteractionErrorDomain”,“错误代码”:“0”, “文件名”:“GREYElementInteraction.m”,“函数名”:“-[GREYElementInteractionmatchedElementsWithTimeout:error:]”,“行”:“124”,“TestCase 类”:“MyAppTests.Myunittest”,“TestCase 方法” :“测试示例”}]

查看层次结构

ECKit_iOS.IconButton:0x7f86af9aea00; 轴=Y;AX.label='お知らせ'; AX.frame={{351, 81}, {55, 50}}; AX.activationPoint={378.5, 106}; AX.traits='UIAccessibilityTraitButton'; AX.focused='N'; 帧={{0, 0}, {55, 50}}; alpha=1> -UIButtonLabel:0x7f86aed75130; 轴=Y;AX.label='お知らせ'; AX.frame={{362, 115}, {33, 10}}; AX.activationPoint={378.5, 120}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; 帧={{11, 34}, {33, 10}}; 阿尔法=1;UIE=N; text='お知らせ'>

失败截图

在此处输入图像描述

关注点

  1. 视图层次结构和打印异常之间存在矛盾
  2. 如果异常是“NoMatchingElementException”,为什么恢复建议会说“检查元素是否存在于下面打印的 UI 层次结构中。如果存在,请调整匹配器以使其准确匹配元素”
  3. 在安装后的现有应用程序中,如果我在 UNIT TESTING TARGET 中添加新的 XCTestCase,则应用程序以黑色背景显示(我期待它为白色)。
  4. 对于FAQ中的闪屏建议,swift实现方案似乎很难实现(app模块应该在testing模块&rootViewController类中导入
  5. 通过单元测试目标中的播放按钮运行应用程序与直接启动应用程序。出现意外的黑色背景而不是白色背景。在此处输入图像描述
  6. 如果我们同时选择 Xcode 的 UI 测试和 EarlGrey,我们不能在单元测试目标中使用来自 UI 测试目标的自动生成的代码和 UI 测试的管理变得困难
  7. 失败时的屏幕截图(黑屏)与视图层次结构相矛盾
0 投票
0 回答
161 浏览

earlgrey - EarlGrey TimeoutException viewDidDisappear

有人可以帮我解决如果测试因 kGREYPendingViewsToDisappear 失败而需要做的事情,如下例所示

代码

EarlGrey.selectElement(with: gray_keyWindow()).assert(grey_sufficientlyVisible())

例外

UI 测试活动:断言失败:EarlGreyTests.swift:27:异常:TimeoutException

异常名称:TimeoutException 异常原因:等待执行断言时超时。断言异常:{ "Assertion Criteria": "assertWithMatcher:matcherForSufficientlyVisible(>=0.750000)", "Element Matcher": "(kindOfClass('UIWindow') && keyWindow)" }

异常详细信息:错误跟踪:[{“描述”:“无法执行块,因为下面的空闲资源很忙。”,“描述词汇表”:{“GREYAppStateTracker”:“等待viewDidDisappear:调用视图控制器。请确保这个视图控制器和它的子类调用它们的超级实现。

所有对象的完整状态转换调用堆栈:=> 等待 viewDidDisappear:在视图控制器上调用。请确保此视图控制器及其子类调用它们的超级实现。( 0 EarlGrey 0x0000000133ea1d3d -[GREYAppStateTrackerObject setState:] + 61 1 EarlGrey 0x0000000133e49685 _133-[GREYAppStateTracker grey_changeState:usingOperation:forObject:orInternalObjectDeallocationTracker:orExternalAppStateTrackerObject:]_block_invoke + 1157 2 EarlGrey 0x0000000133e48858 -[GREYAppStateTracker grey_performBlockInCriticalSection:] + 328 3 EarlGrey 0x0000000133e490ab -[GREYAppStateTracker gray_changeState:usingOperation:forObject:orInternalObjectDeallocationTracker:

什么解决方法不起作用

在 FeedItemCollectionViewController 中添加 viewDidDisappear

0 投票
1 回答
235 浏览

earlgrey - 如何将earlgrey 配置为根本不跟踪网络呼叫?

尝试编写测试时看到此错误。如何将earlgrey 配置为根本不跟踪网络呼叫?


异常详细信息:错误跟踪:[{“Description”:“无法执行块,因为下面的空闲资源很忙。”,“Description Glossary”:{“GREYAppStateTracker”:“等待网络请求完成。默认情况下,EarlGrey 跟踪所有网络请求。要更改此行为,请参阅 GREYConfiguration。

0 投票
0 回答
114 浏览

ios - 支持 Detox 框架上的 TouchID 测试

我想知道是否有办法通过排毒来测试 Touch ID。

我的意思是,模拟成功和失败以及与绑定到流程的系统警报的交互。

0 投票
1 回答
117 浏览

node-modules - 排毒自动化:修改 GREYElementInteraction.m

我一直在寻找一种解决方案来帮助我清理 Detox 测试自动化的输出,因为目前的输出非常混乱。丑陋的最大罪魁祸首似乎存在于 Detox repo 中的 GREYElementInteraction.m 中,但我'不知道如何去调整这个文件。它不存在于本机应用程序上已安装的节点模块中,因此我假设它是由 detox 节点模块文件夹中的 javascript 文件编译和使用的。

有任何想法吗?

0 投票
1 回答
322 浏览

ios - Earlgrey 在访问 NavBar/TabBar 项时速度很慢

由于 EarlGrey 在该过程中运行,并且没有像 XCUI 测试框架中那样涉及安装/卸载过程,我希望测试运行得更快,但我注意到它与 XCUI 测试框架的速度几乎相同。有什么理由吗?

获取 TabBar 或 NavBar 项目非常慢。我怎样才能加快这个过程?

我正在使用它来匹配 TabBar 元素

导航栏按钮也类似

0 投票
0 回答
107 浏览

swift - NoMatchingElementException 的 Earlgrey 错误

我正在迅速使用以下代码

在我的测试中,我使用以下代码

测试时,earlgrey 应该等待,因为它具有同步属性,但它向我显示“没有匹配元素”的错误

0 投票
1 回答
547 浏览

ios - UITableView.reload 将旧单元格留在 TableView 中但隐藏

我有一个 UITableView 用于显示搜索结果。当我打字时,我在打电话Tableview.reloadData()。从视觉上看,一切正常。当我开始输入时,我最多显示 5 个匹配项,当我低于该值时,列表将正确显示更少的项目。以下是单元格的创建方式和报告的行数。

由于 PlaceCell 是一个自定义类,以下是它的一些详细信息:

当使用 Google 的 Earl Gray 的 UI 测试由于多个具有相同可访问性标签的单元格而开始失败时,我开始注意到一个问题。从视觉上看,我不明白为什么会失败,因为只有一个可见的单元格匹配。

在使用 Reveal 检查视图时,似乎随着单元格数下降到最大值 5 以下,旧单元格仍在 TableView 中,但被隐藏了。所以有一个隐藏的单元格曾经显示与不同单元格显示的相同数据。

知道为什么会发生这种情况吗?这已经工作了几个月,我不确定发生了什么变化。