问题标签 [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 投票
1 回答
2590 浏览

ios - 如何配置我的 EarlGrey 测试以等待视图或事件?

EarlGrey我正在编写一个测试,我需要使用UI 测试框架等待特定视图显示在我的 UI 中。因此,我查看了此处的文档并尝试使用GREYCondition. 但似乎GREYCondition需要使用特定的条件检查。谁能告诉我条件的格式是什么?有什么方法可以在我的视图中传递给条件以使其等待它?

0 投票
1 回答
355 浏览

ios - 如何调试 EarlGrey 测试中的超时失败?

每次我运行 EarlGrey 测试时,它都会失败并显示以下消息:

由于错误而无法更改设备方向:Error Domain=com.google.earlgrey.GREYUIThreadExecutorErrorDomain Code=0 "Failed to execute block because App is not idle.动画或网络请求可能无限期持续?等待终端事件给我一个问题。所有元素的完整状态转换调用堆栈:

0 投票
2 回答
2111 浏览

ios - EarlGrey - 如何检查屏幕上是否显示多个对象

EarlGrey文件_ _

You must narrow down the selection until it can uniquely identify a single UI element

我的 UI 上有三个 UIView,我需要检查使用grey_sufficientlyVisible()断言的可见性。但是,除非我真的使用它们各自的可访问性标签来挑选每一个,否则我无法匹配所有这些。有没有办法匹配一组超级视图,或者我应该为每个视图创建单独的测试条件?

0 投票
4 回答
1731 浏览

ios - 是否可以使用 EarlGrey(iOS UI 测试)关闭系统警报?

我开始对 EarlGrey 进行一些试验,现在已经使用 XCUITest 进行了几个月的 UI 测试。我遇到了无法消除系统警报的经典问题,这很奇怪,因为看起来 Google 为系统警报实现了一个匹配器,称为 gray_systemAlertViewShown()。我正在尝试使用 GREYCondition 检测系统警报。这是我尝试过的:

我也尝试过使用 addUIInterruptionMonitorWithDescription ,如此处所述(但使用 EarlGrey 代码基本上完成了我在中断监视器中所做的工作):Xcode 7 UI Testing: how to dismiss a series of system alerts in code

这两种方法都不起作用。我的 GREYCondition 中的非错误情况不会触发断点,并且中断监视器也不会关闭我的警报。

有人知道 EarlGrey 是否支持关闭系统警报?

0 投票
1 回答
862 浏览

ios - dyld:未为 EarlGrey 安装加载库

我正在按照Github 安装部分中的说明将EarlGrey集成到我的应用程序中。我已经设置了测试目标,并通过将 EarlGrey 拖放到我的项目中来添加它,并将其添加为框架依赖项。但是,在运行我的测试时,我收到以下错误:

dyld: Library not loaded Reason: image not found

我需要在我的项目中做些什么来解决这个问题?

0 投票
2 回答
399 浏览

earlgrey - 早期的灰色环境设置

我正在尝试按照此处所述的 Cocoapod 安装步骤在我的计算机上安装 Earlgrey

执行完所有步骤后,我在构建过程中不断出现编译错误

EarlGrey.swift:17:27:使用未声明的类型“EarlGreyImpl”

有 13 个这样的编译错误都与未解析的标识符有关。

我多次重试这些步骤,结果相同。我的文件夹结构与说明中显示的内容相匹配。

任何建议我应该在哪里进一步解决这个问题。

作为参考,我使用这个swift 项目作为编写测试用例的基础。

0 投票
1 回答
321 浏览

ios - EarlGrey 启动 APP 但屏幕空白

尝试在我的 APP 上启动 EarlGrey 测试,但在启动画面打开后,我得到的只是空白屏幕。

我们使用 2 个不同的窗口作为启动屏幕和主 APP,第一个看起来像 EarlGrey 堆栈。有没有办法在 EarlGrey 中切换屏幕?

我在测试输出中的内容:

2016-03-03 15:00:25.721 XING[23504:165847] 无法启动 com.apple.AXInspector [268435460 - 端口:31499] 2016-03-03 15:00:49.001 XING[23504:165847] 应用程序窗口层次结构(按窗口高度排序,从前到后):

图注: [窗口 1] = [最前面的窗口] [AX] = [辅助功能]

========== 窗口 1 ==========

UITextEffectsWindow:0x7fbe3bf10e50; AX=N;AX.frame={{0, 0}, {375, 667}}; AX.activationPoint={187.5, 333.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; 帧={{0, 0}, {375, 667}}; alpha=1> UIInputSetContainerView:0x7fbe3bc2cff0; AX=N;AX.frame={{0, 0}, {375, 667}}; AX.activationPoint={187.5, 333.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; 帧={{0, 0}, {375, 667}}; 不透明; alpha=1> UIInputSetHostView:0x7fbe3bc24550; AX=N;AX.frame={{0, 667}, {375, 0}}; AX.activationPoint={187.5, 667}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; 帧={{0, 667}, {375, 0}}; 不透明; 阿尔法=1>

========== 窗口 2 ==========

UIWindow:0x7fbe3be22b80; AX=N;AX.frame={{0, 0}, {375, 667}}; AX.activationPoint={187.5, 333.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; 帧={{0, 0}, {375, 667}}; 不透明; alpha=1> |--UIView:0x7fbe3d55d970; AX=N;AX.frame={{0, 0}, {375, 667}}; AX.activationPoint={187.5, 333.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; 帧={{0, 0}, {375, 667}}; 不透明; 阿尔法=1>

0 投票
1 回答
836 浏览

ios - EarlGrey 可以使用多个可访问性标签或文本

我想知道是否有可能在 EarlGrey 中使用类似的东西

[[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"登录")] performAction:grey_tap().elementByIndex(0)]

(带有grey_accessibilityLabelgrey_text

在我们的APP中经常存在可以找到多个元素的情况,需要一个解决方案来防止它。

我知道最好使用 Accessibility ID 来避免此类问题,但 APP 的当前状态是它没有任何 ID。

0 投票
1 回答
886 浏览

ios - EarlGrey 尝试等待 5.0 秒让应用程序达到空闲状态

看来 EarlGrey 在测试我们的 APP 时不能使用等待 APP 空闲的好功能。在每个屏幕上出现此错误:

EarlGrey 尝试等待 5.0 秒以使应用程序达到空闲状态,但它没有。EarlGrey 现在被迫清理状态跟踪器,因为测试 -[EGT testLogin] 可能导致 UI 线程无限期地处于非空闲状态

现在我禁用了该功能并且一切正常,但无法理解这些问题的原因。我在 Xcode 7 UI 自动化上遇到了同样的问题,但只在整个 APP 的 1 个屏幕上(因为一些大量的数据获取器)而不是在欢迎页面上。

这是状态 AppStateTracker:

0 投票
2 回答
1414 浏览

ios - 使用 EarlGrey 按下导航栏上的后退按钮

我在尝试编写一个使用后退按钮的测试时遇到了一些障碍,希望有人可以用这个为我指明正确的方向。

我的视图非常标准,我有一个 UINavigation 控制器作为我的根视图控制器,我将它推到一个点,然后需要返回。

我试图制作一个匹配器,可以在导航栏中找到后退按钮,但没有任何成功。我尝试使用标签、id 和值,在后退按钮项上设置可访问性标识符并没有导致匹配,即使它适用于我的其他界面元素。

在我的测试中,我有以下内容:

我使用断点和 PO 进行了深入研究,发现后退按钮的 accessibilityLabel 确实设置为 @"Back" 但它也与以下代码不匹配。