问题标签 [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
我正在编写一个测试,我需要使用UI 测试框架等待特定视图显示在我的 UI 中。因此,我查看了此处的文档并尝试使用GREYCondition
. 但似乎GREYCondition
需要使用特定的条件检查。谁能告诉我条件的格式是什么?有什么方法可以在我的视图中传递给条件以使其等待它?
ios - 如何调试 EarlGrey 测试中的超时失败?
每次我运行 EarlGrey 测试时,它都会失败并显示以下消息:
由于错误而无法更改设备方向:Error Domain=com.google.earlgrey.GREYUIThreadExecutorErrorDomain Code=0 "Failed to execute block because App is not idle.
动画或网络请求可能无限期持续?等待终端事件给我一个问题。所有元素的完整状态转换调用堆栈:
ios - EarlGrey - 如何检查屏幕上是否显示多个对象
EarlGrey
文件说_ _
You must narrow down the selection until it can uniquely identify a single UI element
我的 UI 上有三个 UIView,我需要检查使用grey_sufficientlyVisible()
断言的可见性。但是,除非我真的使用它们各自的可访问性标签来挑选每一个,否则我无法匹配所有这些。有没有办法匹配一组超级视图,或者我应该为每个视图创建单独的测试条件?
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 是否支持关闭系统警报?
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>
ios - EarlGrey 可以使用多个可访问性标签或文本
我想知道是否有可能在 EarlGrey 中使用类似的东西
[[EarlGrey selectElementWithMatcher:grey_accessibilityLabel(@"登录")] performAction:grey_tap().elementByIndex(0)]
(带有grey_accessibilityLabel
或grey_text
)
在我们的APP中经常存在可以找到多个元素的情况,需要一个解决方案来防止它。
我知道最好使用 Accessibility ID 来避免此类问题,但 APP 的当前状态是它没有任何 ID。
ios - EarlGrey 尝试等待 5.0 秒让应用程序达到空闲状态
看来 EarlGrey 在测试我们的 APP 时不能使用等待 APP 空闲的好功能。在每个屏幕上出现此错误:
EarlGrey 尝试等待 5.0 秒以使应用程序达到空闲状态,但它没有。EarlGrey 现在被迫清理状态跟踪器,因为测试 -[EGT testLogin] 可能导致 UI 线程无限期地处于非空闲状态
现在我禁用了该功能并且一切正常,但无法理解这些问题的原因。我在 Xcode 7 UI 自动化上遇到了同样的问题,但只在整个 APP 的 1 个屏幕上(因为一些大量的数据获取器)而不是在欢迎页面上。
这是状态 AppStateTracker:
ios - 使用 EarlGrey 按下导航栏上的后退按钮
我在尝试编写一个使用后退按钮的测试时遇到了一些障碍,希望有人可以用这个为我指明正确的方向。
我的视图非常标准,我有一个 UINavigation 控制器作为我的根视图控制器,我将它推到一个点,然后需要返回。
我试图制作一个匹配器,可以在导航栏中找到后退按钮,但没有任何成功。我尝试使用标签、id 和值,在后退按钮项上设置可访问性标识符并没有导致匹配,即使它适用于我的其他界面元素。
在我的测试中,我有以下内容:
我使用断点和 PO 进行了深入研究,发现后退按钮的 accessibilityLabel 确实设置为 @"Back" 但它也与以下代码不匹配。