48

「赤」、「緑」、「黄」、「黒」の項目が少ないピッカー ビューがあります。私の UI テストでは、特定の項目「緑」を選択する必要があります。Xcode 7 で導入された XCTest UI テスト API を使用しています。

ここに画像の説明を入力

これまでになんとかできたことは、単体テストでピッカー ビュー全体を上にスワイプすることです。ピッカー ビューが常に一番下の項目に変更されるため (上にスワイプした場合)、理想的ではありません。

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

ピッカー ビューを変更するもう 1 つの非常によく似た方法は、 を呼び出すこと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")
4

7 に答える 7

20

複数のホイールがある場合、アイテムを選択する簡単な方法は次のとおりです。

前提条件: 日付ピッカー (UIDatePicker)、迅速な言語であること

    app.pickerWheels.elementBoundByIndex(0).adjustToPickerWheelValue("March")
    app.pickerWheels.elementBoundByIndex(1).adjustToPickerWheelValue("13")
    app.pickerWheels.elementBoundByIndex(2).adjustToPickerWheelValue("1990")

ここで、インデックス "0" は月、"1" は日、"2" は年です。

于 2015-10-16T21:35:46.693 に答える
-1

以下のコードを使用して、ピッカー ホイールに現在表示されている要素を特定しました。

ピッカーで要素を検索するには

let valueSelected = algorithmsPicker.pickerWheels.element(boundBy: 0).value as! String

ピッカー ホイールで値を選択するには:

 algorithmsPicker.pickerWheels[valueSelected].adjust(toPickerWheelValue: "BubbleSort")
于 2018-03-26T14:33:15.700 に答える