问题标签 [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.
ios - Earlgrey 在运行测试用例时可以获取实例数据吗
我是 Earlgrey 运行的 UITest 的新手。我知道从 XCTestCase 继承的库,所以我虽然天气可以获取 UI 元素的数据。但我在 Earlgrey 文档中找不到用于查询实例信息的相关 api。有可能达到吗?感谢任何建议?
earlgrey - 在单元测试目标中添加 UI 测试
我不想污染/混合我在UNIT TESTING TARGET中编写的单元测试用例(使用 QuickSpec 编写)与来自 EarlGrey 的 UI 测试。
是否有任何替代方法可以将 EarlGrey 测试添加到UI TESTING TARGET中?
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='お知らせ'>
失败截图
关注点
- 视图层次结构和打印异常之间存在矛盾
- 如果异常是“NoMatchingElementException”,为什么恢复建议会说“检查元素是否存在于下面打印的 UI 层次结构中。如果存在,请调整匹配器以使其准确匹配元素”
- 在安装后的现有应用程序中,如果我在 UNIT TESTING TARGET 中添加新的 XCTestCase,则应用程序以黑色背景显示(我期待它为白色)。
- 对于FAQ中的闪屏建议,swift实现方案似乎很难实现(app模块应该在testing模块&rootViewController类中导入
- 通过单元测试目标中的播放按钮运行应用程序与直接启动应用程序。出现意外的黑色背景而不是白色背景。
- 如果我们同时选择 Xcode 的 UI 测试和 EarlGrey,我们不能在单元测试目标中使用来自 UI 测试目标的自动生成的代码和 UI 测试的管理变得困难
- 失败时的屏幕截图(黑屏)与视图层次结构相矛盾
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
earlgrey - 如何将earlgrey 配置为根本不跟踪网络呼叫?
尝试编写测试时看到此错误。如何将earlgrey 配置为根本不跟踪网络呼叫?
异常详细信息:错误跟踪:[{“Description”:“无法执行块,因为下面的空闲资源很忙。”,“Description Glossary”:{“GREYAppStateTracker”:“等待网络请求完成。默认情况下,EarlGrey 跟踪所有网络请求。要更改此行为,请参阅 GREYConfiguration。
ios - 支持 Detox 框架上的 TouchID 测试
我想知道是否有办法通过排毒来测试 Touch ID。
我的意思是,模拟成功和失败以及与绑定到流程的系统警报的交互。
node-modules - 排毒自动化:修改 GREYElementInteraction.m
我一直在寻找一种解决方案来帮助我清理 Detox 测试自动化的输出,因为目前的输出非常混乱。丑陋的最大罪魁祸首似乎存在于 Detox repo 中的 GREYElementInteraction.m 中,但我'不知道如何去调整这个文件。它不存在于本机应用程序上已安装的节点模块中,因此我假设它是由 detox 节点模块文件夹中的 javascript 文件编译和使用的。
有任何想法吗?
ios - Earlgrey 在访问 NavBar/TabBar 项时速度很慢
由于 EarlGrey 在该过程中运行,并且没有像 XCUI 测试框架中那样涉及安装/卸载过程,我希望测试运行得更快,但我注意到它与 XCUI 测试框架的速度几乎相同。有什么理由吗?
获取 TabBar 或 NavBar 项目非常慢。我怎样才能加快这个过程?
我正在使用它来匹配 TabBar 元素
导航栏按钮也类似
swift - NoMatchingElementException 的 Earlgrey 错误
我正在迅速使用以下代码
在我的测试中,我使用以下代码
测试时,earlgrey 应该等待,因为它具有同步属性,但它向我显示“没有匹配元素”的错误
ios - UITableView.reload 将旧单元格留在 TableView 中但隐藏
我有一个 UITableView 用于显示搜索结果。当我打字时,我在打电话Tableview.reloadData()
。从视觉上看,一切正常。当我开始输入时,我最多显示 5 个匹配项,当我低于该值时,列表将正确显示更少的项目。以下是单元格的创建方式和报告的行数。
由于 PlaceCell 是一个自定义类,以下是它的一些详细信息:
当使用 Google 的 Earl Gray 的 UI 测试由于多个具有相同可访问性标签的单元格而开始失败时,我开始注意到一个问题。从视觉上看,我不明白为什么会失败,因为只有一个可见的单元格匹配。
在使用 Reveal 检查视图时,似乎随着单元格数下降到最大值 5 以下,旧单元格仍在 TableView 中,但被隐藏了。所以有一个隐藏的单元格曾经显示与不同单元格显示的相同数据。
知道为什么会发生这种情况吗?这已经工作了几个月,我不确定发生了什么变化。