★ Applicationを取得
let app = XCUIApplication()
★ accessibilityIdentifier
をコードで設定する
@IBOutlet weak var button: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
button.accessibilityIdentifier = "Button"
}
★ 端末の方向を上向きに設定
XCUIDevice.shared().orientation = .faceUp
★ デバイスのホームボタン押下操作
XCUIDevice.shared().press(XCUIDeviceButton.home)
★ デバイスのボリュームを操作する
// ボリュームを上げる
XCUIDevice.shared().press(XCUIDeviceButton.volumeUp)
// ボリュームを下げる
XCUIDevice.shared().press(XCUIDeviceButton.volumeDown)
★ UIButtonオブジェクトを取得
let button = app.buttons["identifier"]
★ UIButtonをタップ
// シングルタップ
app.buttons["identifier"].tap()
// ダブルタップ
app.buttons["identifier"].doubleTap()
★ UIButtonのタイトルテスト
let title = app.buttons["Button"].label
XCTAssertEqual(title, "ボタン")
★ NavigationのBarButtonItemを取得
let barbutton = app.navigationBars["UITestingViewController.View"].buttons["identifier"]
★ Navigationの純正の戻るボタンのタップ
app.navigationBars["UIView"].children(matching: .button).matching(identifier: "Back").element(boundBy: 0).tap()
★ UITextFieldの文字列と比較する
let textFieldText = app.textFields["VCTextField"].value as? String
XCTAssertEqual(textFieldText, "0")
★ TextFieldをタップしてキーボードを表示する
let textField = element.children(matching: .textField).element
textField.tap()
★ UITextFieldに文字を入力する
// キーボードを表示してからでないと入力できない
let textField = app.textFields["identifier"]
textField.tap()
// input text
textField.typeText("テキスト")
★ UISliderの値を変更する
let slideridSlider = XCUIApplication().sliders["SliderID"]
slideridSlider.adjust(toNormalizedSliderPosition: 0)
slideridSlider.adjust(toNormalizedSliderPosition: 0.5)
slideridSlider.adjust(toNormalizedSliderPosition: 1)
// Sliderをタップ
slideridSlider.tap()
★ SwitchのIDを指定しない場合のSwitchの切り替え
app.switches["1"].tap()
app.switches["0"].tap()
★ SwitchのIDを指定した場合のSwitchの切り替え
let switchObj = XCUIApplication().switches["Identifier"]
switchObj.tap()
switchObj.tap()
switchObj.tap()
★ セルのn番目をタップする
let app = XCUIApplication()
let cell = app.tables.cells.element(boundBy: 4)
// tap cell
cell.tap()
// セルのIDを指定した場合
XCUIApplication().tables.cells.matching(identifier: "CellID").element(boundBy: 4).tap()
// IDとtextLabel?.textを指定した場合
XCUIApplication().tables.cells.matching(identifier: "CellID").staticTexts[textLabel?.text].tap()
// textLabel?.textのみを指定した場合1
XCUIApplication().tables.cells.staticTexts[textLabel?.text].tap()
// textLabel?.textのみを指定した場合2
XCUIApplication().tables.staticTexts[textLabel?.text].tap()
★ UITableViewのセルの数をテスト
let app = XCUIApplication()
XCTAssertEqual(5, app.tables.cells.count)
★ XCUIElementTypeQueryProvider