UI要素を操作する
タップ、長押し
XCUITestには操作するためのメソッドが複数用意されている。
宣言 | 補足 |
---|---|
func doubleTap() | |
func twoFingerTap() | |
func tap(withNumberOfTaps numberOfTaps: Int, numberOfTouches: Int | タップ回数とタッチ回数を指定する |
func press(forDuration duration: TimeInterval) | 指定した秒数分長押し |
func press(forDuration duration: TimeInterval, thenDragTo otherElement: XCUIElement) | 特定のUI要素までドラッグ |
press については 長押し対象のUI要素がスクロールしないと見えない箇所にある場合、事前にスクロールしてから長押しをしてくれる。
ジェスチャー(スワイプ、拡大・縮小、回転)
ジェスチャーは以下の通り定義されている。
宣言 | 用途 |
---|---|
func swipeLeft() | |
func swipeRight() | |
func swipeUp() | |
func swipeDown() | |
func pinch(withScale scale: CGFloat, velocity: CGFloat) | 2本指を使っての操作 |
func rotate(_ rotation: CGFloat, withVelocity velocity: CGFloat) | 対象のUI要素の回転 |
スワイプ操作では速度や距離は指定できない。そのため、求めている位置までスクロールできるとは限らない点に注意すること。
velocity
とはジェスチャーにおける速度を表す。
withScale
に指定する値は 0 ~ 1 の場合はピンチイン、1以上の場合はピンチアウトになる。
ジェスチャーメソッドはベストエフォートなので、指定した値が必ずしも動作保証されない点に注意する必要がある。
Slider、Pickerを操作する
Slider、Pickerの操作には adjust
メソッドを使用する。
宣言 | 用途 |
---|---|
func adjust(toNormalizedSliderPosition normalizedSliderPosition: CGFloat) | Sliderの操作 |
func adjust(toPickerWheelValue pickerWheelValue: String | Pickerの操作 |
Sliderについては指定した引数の値になるかはベストエフォートであるため、必ずしも値が指定したものになるとは限らない。
Pickerでは指定した文字列がPickerの値として存在していれば選択される。