Open2

SwiftUI: XCUITestでのStepperのボタンへのアクセス

kabeyakabeya

SwiftUIのStepperのプラスマイナスボタンへのXCUITestでのアクセス方法。

let stepperIdentifier = "StepperのaccessibilityIdentifier"
let stepper = app.steppers[stepperIdentifier].firstMatch
let incrementButton = stepper.buttons[stepperIdentifier + "-Increment"].firstMatch
let decrementButton = stepper.buttons[stepperIdentifier + "-Decrement"].firstMatch

incrementButton.tap()
decrementButton.tap()

要はボタンのidentifierは、Stepperidentifier+"-Increment"のようになります。
もしStepperaccessibilityIdentifierを設定してなければ、ボタンのidentifierは単に"Increment"になります。つまりハイフンが付かない。

kabeyakabeya

accessibilityIdentifierはXCTestのためだけの設定、というわけではなく、VoiceOverでの読み上げやUI Automationでのコントロールの識別にも使われるようです。

ただし、VoiceOverでの読み上げの順序としてはprompttitleaccessibilityLabelなどが優先で、それらがなければaccessibilityIdentifierという感じのようです。

ようです、ってばっかりなのは、こいつのドキュメントが見当たらないからです。