标签: xcode-ui-testing

从 UITests 执行 UIAccessibilityCustomAction

我有一个 UIView 的子类,假设它class DemoView: UIView { }包含 UILabel 和 UIButton。我需要对其进行分组并添加 UIAccessibilityCustomAction,因此我覆盖了var accessibilityElements: [Any]?并使用 union 来连接两个元素。我还将“Users”字符串分配给accessibilityLabel.

从用户的角度来看,它应该正常工作,VoiceOver 会读取Users,然后用户可以选择名为 的自定义操作Edit。

问题是我不知道如何从 UITests 触发这个自定义操作。我知道它XCUIElement包含数组UICustomActions并且我可以获得它的选择器,但是然后呢?

accessibility ios uiaccessibility xctest xcode-ui-testing

4
推荐指数
1
解决办法
1860
查看次数

是否可以通过 xcrun simctl 与克隆的 iOS 模拟器进行交互?

当我在多个模拟器上并行运行 UI 测试时,克隆的模拟器似乎对xcrun simctl.

运行时xcrun simctl list,源模拟器出现,但处于“关闭”状态:

4 Inch Snapshots - en-US (0) (3334A5D1-A4EC-41ED-AB10-55495B4BE329) (Shutdown)

当我尝试对“启动”设备运行任何命令时,它声称没有模拟器在运行:

xcrun simctl status_bar booted override --time "2007-01-09T09:41:00-05:00"
No devices are booted.
Run Code Online (Sandbox Code Playgroud)

有什么方法可以针对这些克隆模拟器吗xcrun simctl?

ios-simulator xcrun simctl xcode-ui-testing

4
推荐指数
1
解决办法
1017
查看次数

Xcode UI 测试:测试运行时模拟器不可见

在 Xcode 中运行 UITests 时遇到问题,模拟器已启动但不可见,测试仍然运行良好,但我看不到发生了什么。

模拟器推出

我相信测试正在运行,因为我可以看到所有输出,如果我故意犯错,调试输出也会正确显示它。如果我运行主目标或单元测试目标,模拟器是可见的,问题仅在于 UI 测试。

我尝试清理项目,删除派生数据,甚至重新启动机器,但没有帮助。

xcode simulator ios xcode-ui-testing

4
推荐指数
1
解决办法
984
查看次数

Xcode UI测试-通过id在Webview中查找元素

我们的应用程序是混合的,包含webview。我正在尝试使用Xcode UI测试来自动化我们的应用程序。我能够使用以下方法找到Web按钮:

let app = XCUIApplication() 
app.launch() 
let button = app.staticTexts["Button's text"]
Run Code Online (Sandbox Code Playgroud)

但是在我们的一项测试中,我们测试了本地化-意味着文本更改了,并且静态文本查询不再有效。找不到任何文档,如何通过其ID(甚至是类名)定位元素。有任何想法吗?

webview ios swift xcode7 xcode-ui-testing

3
推荐指数
1
解决办法
4196
查看次数

如何从UI测试访问App Delegate?

我想router在UI测试期间从启动的应用程序的App Delegate 访问特定属性,但我无法弄清楚这是否可行.我试过了:

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let router = appDelegate.router
Run Code Online (Sandbox Code Playgroud)

但这会导致失败,甚至无法建立.我正在使用@testable我的项目模块.有任何想法吗?

ios xcode-ui-testing

3
推荐指数
1
解决办法
1566
查看次数

如何像appium检查员那样检查xcode ui测试的元素

我正在做xcode ui test forl app.以前我用过

appium
Run Code Online (Sandbox Code Playgroud)

通过它我可以知道任何元素的细节路径.通过它的检查器,我可以知道元素名称或xpath或任何东西.

但根据要求,最近我切换到xcode ui测试.

我正面临这项新技术的问题.我无法获得元素细节.

它通过记录提供详细信息,但这不是一直有效.

有时它太长了.

Is there any way to inspect the element like appium inspector so that
i can write my element path accordingly by myself without recording?
Run Code Online (Sandbox Code Playgroud)

xcode xcode-ui-testing

3
推荐指数
1
解决办法
5255
查看次数

Xcode 8 UI测试需要很长时间

我正在为XCode 8编写一个非常复杂的应用程序的UI测试.我发现了几个问题,其中一个问题是我运行的每个测试都需要几分钟.

我正在运行的特定测试的流程甚至都不复杂.

我得到许多"等待app闲置"的消息.

有谁知道为什么测试需要这么长时间才能运行,或者你对我如何加快它们有任何建议?WWDC演示基本上是即时的,但这是一个非常简单的应用程序.

这是我看到的一个例子,以及需要多长时间.(测试还在运行!)

t =   504.16s         Wait for app to idle
t =   625.29s         App animations complete notification not received, will attempt to continue.
t =   625.30s         Synthesize event
t =   625.67s         Wait for app to idle
Run Code Online (Sandbox Code Playgroud)

谢谢!

更新:当我与应用程序轻微交互时,同时保持我需要的元素,例如通过拉取tableview,测试继续.

xcode xcode-ui-testing xcode8

3
推荐指数
2
解决办法
1978
查看次数

从主bundle获取本地化字符串

如何从主Bundle进入UITest目标本地化?

func localizedText(_ key: String) -> String {
    return Bundle.main.localizedString(forKey: key, value: nil, table: nil)
}
Run Code Online (Sandbox Code Playgroud)

我尝试访问Bundle.main但没有本地化字符串.而且似乎我无法导入应用程序的主要目标来做Bundle(for:ClassName.self).localized ...

任何提示?

ios swift xcode-ui-testing

3
推荐指数
1
解决办法
1016
查看次数

UI测试firstMatch

它是安全的,以取代在我的UI测试的代码,所有实例.element(boundBy: 0)有.firstMatch?

我会这样认为,但是Apple的文档对此不太清楚(特别是在多次匹配的情况下,尽管我只关心第一个)。 https://developer.apple.com/documentation/xctest/xcuielementtypequeryprovider/2902250-firstmatch

ios xcode-ui-testing

3
推荐指数
1
解决办法
874
查看次数

Xcode UITest中的PageControl

我有一个应用程序,其中使用页面控件来指示多个屏幕。当用户点击页面控件时(例如:在当前所选页面的右侧),滚动视图将滚动到以下屏幕。工作正常。

我想为这种情况编写一个UI测试。我发现我无法点击特定的页面控件“点”来触发该操作。我可以检查的是页面控件是否存在以及当前所选页面。

另一个问题是,即使我能够这样做,如何检查滚动视图是否已经滚动?我只能访问滚动视图的框架,而不能访问其边界。

我刚刚开始使用Xcode UITest,这让我失望了。我认为它现在将很强大(它是Xcode 7引入的,并且以前作为UI Automation可用),但是似乎还没有。

我将回到单元测试+手动功能测试。如果有人有其他想法,请分享。

ios xcode-ui-testing

3
推荐指数
1
解决办法
892
查看次数