我有一个选择器视图,其中包含以下几个项目:“红色”,“绿色”,“黄色”,“黑色”。在我的 UI测试中,我需要从中选择一个特定的项目“绿色”。我正在使用Xcode 7 引入的XCTest UI测试API。
到目前为止,我设法在单元 测试中向上滑动了整个选择器视图。这并不理想,因为它总是将选择器视图更改为底部 项目(向上滑动时)。
let app = XCUIApplication() app.launch() app.pickers.elementAtIndex(0).swipeUp() XCTAssert(app.staticTexts["Selected: Black"].exists)
更改选择器视图的另一种但非常相似的方法是调用 pressForDuration ... thenDragToElement,这不是我想要的。
pressForDuration ... thenDragToElement
app.pickers.elementAtIndex(0).pressForDuration(0.1, thenDragToElement: someElement)
当我使用UI测试记录功能时,它不会记录选择器视图 滚动事件。当我点击选择器视图项时,它会记录:
app.pickerWheels["Green"].tap()
但这在运行测试时实际上不起作用(可能是因为它需要在点击之前先滚动选择器视图)。
这是带有测试的演示应用程序。
https://github.com/exchangegroup/PickerViewTestDemo
从Xcode 7.0 beta 6开始,现在可以选择一个选择器视图。
app.pickerWheels["Green"].adjustToPickerWheelValue("Yellow")
如问题的更新所述,Xcode 7 Beta 6添加了对与选择器进行交互的支持。新添加的方法-adjustToPickerWheelValue:应用于选择上的项目UIPickerView。
-adjustToPickerWheelValue
UIPickerView
let app = XCUIApplication() app.launch() app.pickerWheels.element.adjustToPickerWheelValue("Yellow")
Here’s a GitHub repo with a working example. And some more information in a blog post I wrote.