Apple在Xcode 7中简化了iOS UI测试.
使用新的Xcode 7项目,要获得iOS UI测试的完整配置,您只需在创建项目时选中"包含UI测试".
对于在Xcode 7存在之前创建的项目,在Xcode 7中获得相同的步骤是什么?
在我的项目上使用 Xcode 开始 UI 测试,遇到了障碍。
有一个UITextField调用的子类,RSCustomTextField它有一些 UI 自定义。添加到RSSearchHeadView包含文本字段和按钮的 。
所以我无法查询文本字段,app.textfields["Search field"]因为它是一个自定义类,它显示为app.otherElements["Search field"]
它在searchField.typeText("abc")显示错误时崩溃元素和任何后代都没有键盘焦点。.
即使在tap()元素之后。请注意,我还尝试在子类和文本字段上设置可访问性特征,UIAccessibilityTraitSearchField但没有区别。
func testSearchIcon() {
let searchField = app.otherElements["Search field"]
searchField.tap()
searchField.typeText("abc")
app.keys["delete"].tap()
XCTAssertFalse(searchDubizzleElement.hittable)
}
Run Code Online (Sandbox Code Playgroud)
debugDescription在应用程序上打印提供以下输出:
Element subtree:
?Application 0x7fc1b3f3aa00: {{0.0, 0.0}, {375.0, 667.0}}, label: 'myappname-masked'
Window 0x7fc1b3f439b0: Main Window, {{0.0, 0.0}, {375.0, 667.0}}
Other 0x7fc1b3f55c20: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}}
Other 0x7fc1b3f43440: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}} …Run Code Online (Sandbox Code Playgroud) 只是想知道是否有可能在xcode中使用UITesting以某种方式在模拟器的自定义位置编码.我们有一个应用程序涉及许多位置更改,如果我们可以自动化位置更改作为我们的UITesting套件的一部分将是很好的.
我有用于测试MyApp的UI测试目标.要测试特定的MyApp条件,我需要将通知从UI测试目标发布到MyApp目标.要从UI测试目标函数发布通知,我使用此:
NSNotificationCenter.defaultCenter().postNotificationName(name, object: nil, userInfo: aUserInfo)
Run Code Online (Sandbox Code Playgroud)
看起来这个通知永远不会从UI测试目标到达观察者,但是从MyApp目标发布此通知时它可以正常工作.
如何从UI Target发布通知到MyApp目标?
使用Xcode 7.
我正在尝试使用XCTest UI测试来测试我的UI,并且在我的应用程序中遇到了测试UIImageViews的麻烦(点击测试,存在等).
在XCUIElementType的列表中没有这样的类型,当我查看superview的子节点时,由于某些原因我的UIImageViews没有列在那里,尽管我可以在屏幕上和Xcode的UI检查器中看到它们.
有人有过这种问题吗?
我正在使用XCUI测试来自动测试我们的应用程序中的一些流程(~35个测试场景)和Xcode 7.2.1
在本地运行这些测试将始终通过,而在我们的虚拟机实例(Parallels,Mac mini,OSX 10.11,8GB RAM)上运行它们将在此过程中的不同部分失败.
我会得到如下错误:
UI Testing Failure - App state for <XCUIApplicationProcess: 0x7ff661528a50 (null) (6798)> is XCApplicationStateRunningActive (3), still not XCApplicationStateNotRunning (1)[0m
Run Code Online (Sandbox Code Playgroud)
我已经关闭了应用程序中的动画,并在整个应用程序中放置了大量的等待时间,以尝试迎合慢速运行,但没有结束.
运行XCUITests和模拟器运行时是否有任何类似的问题?
任何帮助都会很棒.
我有一个应用程序与今日小工具.所以我想对它进行一些UI测试.
我找到了打开今日/通知面板的方法.看起来很简单:
let statusBar = XCUIApplication().statusBars.elementBoundByIndex(0)
statusBar.swipeDown()
Run Code Online (Sandbox Code Playgroud)
但后来我找不到办法做一些有用的事情.可以在"今日/通知"面板中记录UI交互,但此类代码无法重现我的操作.
ios ios8-today-widget today-extension xcode-ui-testing ios9-today-widget
如果这是一个重复的问题,我道歉.我找不到一个而且不知所措.我的测试无法通过,因为应用程序无法启动.我运行测试并观看模拟器,并使用正常的应用程序(用于单元测试),它将在测试运行后打开和关闭,但是我的"MyAppUITests"应用程序,它看起来已准备好打开并在启动时崩溃这就是为什么我收到Application is not running, unable to get Accessibility data. Did you call -launch消息.
UI测试运行时的控制台:
Test Case '-[FizzBuzzUITests.ViewControllerUITests
testTapNumberButtonIncrementsScore]' started.
t = 0.00s Start Test at 2017-04-10 10:44:25.544
t = 0.00s Set Up
t = 0.01s Tap "numberButton" Button
t = 0.01s Wait for app to idle
t = 0.07s Find the "numberButton" Button
t = 0.08s Wait for app to idle
t = 1.13s Find the "numberButton" Button (retry 1)
t = 1.25s Wait for app to …Run Code Online (Sandbox Code Playgroud) 我目前正在使用Fastlane Snapshot自动为我的应用程序截取屏幕截图.这一切都基于UI测试.
我正在尝试将相同的功能添加到iMessage App/Extension.
所以目前我有一个测试,通过点击按钮,填写文本字段,截取屏幕截图等.
完成所有这些后,我希望它关闭应用程序(单击主页按钮),打开iMessage,与我的iMessage应用程序交互并在那里截取一些屏幕截图.
这可能吗?如果是这样我怎么能实现这个目标?自动化这个应用程序的屏幕截图非常棒,我也希望能够为iMessage应用程序做到这一点.
我想支持VoiceOver.我有一个UIButton内心UITableViewCell.根据最佳实践,我已禁用了accessibility(.isAccessibilityElement = false)按钮,并为cell(accessibilityCustomActions, NSAccessibilityCustomAction)实现了自定义辅助功能.
这样VoiceOver就不会找到并读取按钮作为自己的元素.为了使按钮后面的功能可访问,我已向单元格添加了自定义辅助功能操作.通过自定义操作,用户可以通过向上和向下滑动来选择操作.然后用双击执行它.
现在我想用UITest测试这个动作.无法访问UITest内的按钮,因为它已禁用可访问性.
如何在UITest内执行自定义辅助功能?
xcode-ui-testing ×10
ios ×9
swift ×3
xcode ×3
ui-testing ×2
xcode7 ×2
xctest ×2
geolocation ×1
location ×1
objective-c ×1
screenshot ×1
swift3 ×1
uiimageview ×1
voiceover ×1
xcode8 ×1
xcuitest ×1