一尘不染

如何在Xcode的iOS UI测试中选择选择器视图项?

swift

我有一个选择器视图,其中包含以下几个项目:“红色”,“绿色”,“黄色”,“黑色”。在我的
UI测试中,我需要从中选择一个特定的项目“绿色”。我正在使用Xcode 7 引入的XCTest UI测试API。

到目前为止,我设法在单元
测试中向上滑动了整个选择器视图。这并不理想,因为它总是将选择器视图更改为底部
项目(向上滑动时)。

let app = XCUIApplication()
app.launch()
app.pickers.elementAtIndex(0).swipeUp()    
XCTAssert(app.staticTexts["Selected: Black"].exists)

更改选择器视图的另一种但非常相似的方法是调用
pressForDuration ... thenDragToElement,这不是我想要的。

app.pickers.elementAtIndex(0).pressForDuration(0.1, thenDragToElement: someElement)

当我使用UI测试记录功能时,它不会记录选择器视图
滚动事件。当我点击选择器视图项时,它会记录:

app.pickerWheels["Green"].tap()

但这在运行测试时实际上不起作用(可能是因为它需要在点击之前先滚动选择器视图)。

这是带有测试的演示应用程序。

https://github.com/exchangegroup/PickerViewTestDemo

Update

从Xcode 7.0 beta 6开始,现在可以选择一个选择器视图。

app.pickerWheels["Green"].adjustToPickerWheelValue("Yellow")

阅读 218

收藏
2020-07-07

共1个答案

一尘不染

如问题的更新所述,Xcode 7 Beta 6添加了对与选择器进行交互的支持。新添加的方法-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
.

2020-07-07