XCUITest - Открыть iOS настроек и изменить дату / время - PullRequest
3 голосов
/ 25 января 2020

Можно ли изменить настройки даты / времени устройства в тесте пользовательского интерфейса?

Я могу открыть приложение «Настройки», перейти к «Общие»> «Дата и время» и отключить кнопку «Автоматически устанавливать». Тем не менее, я не могу найти способ изменить значение pickerWheel.

let settingsApp = XCUIApplication(bundleIdentifier: "com.apple.Preferences")
settingsApp.launch()
settingsApp.tables.cells["General"].tap()
settingsApp.tables.cells["Date & Time"].tap()
settingsApp.switches["Set Automatically"].tap()
// Change pickerWheel value?

Есть мысли? Это вообще возможно?

Спасибо!

1 Ответ

1 голос
/ 27 января 2020

Я использую следующий код для этого:

// Here I format the Time to get the right format
var decomposedDateTime: [String] = Formatters.timeFormatter.string(from: date)
            .replacingOccurrences(of: ":", with: " ")
            .split(separator: " ")
            .map({String($0)})

// Then I format the Day and add it at first        
decomposedDateTime.insert(Formatters.datePickerFormatter.string(from: date), at: 0)

// Update picker wheels accordingly
for i in 0...(decomposedDateTime.count - 1) {
    settingsApp.pickerWheels.element(boundBy: i).adjust(toPickerWheelValue: decomposedDateTime[i])
}

Вот мои форматеры

static let timeFormatter: DateFormatter = {
    let f = DateFormatter()
    f.dateStyle = .none
    f.timeStyle = .short
    return f
}()

static let datePickerFormatter: DateFormatter = {
    let f = DateFormatter()
    f.dateStyle = .medium
    f.dateFormat = "MMM d"
    return f
}()
...