Xcode UITest - Tidak dapat menemukan tombol di Sel yang berisi Pasangan Nilai Kunci

Saya kesulitan menemukan cara untuk mengidentifikasi secara unik serangkaian tombol (kotak centang khusus) yang ada di dalam Sel. Sel berisi data dalam serangkaian pasangan nilai kunci dengan tombol kotak centang terikat pada setiap pasangan nilai kunci. Masalahnya adalah Sel berisi nilai untuk SEMUA pasangan nilai kunci, jadi sepertinya saya tidak dapat menemukan salah satu tombol saja, karena semuanya identik.

Saat kode UITest menguraikan data yang seharusnya ditampilkan dalam aplikasi, saya memeriksa tipe khusus yang terkait dengan pasangan nilai kunci. Jika itu adalah .CheckboxInput, maka ia menjalankan kode di bawah ini:

else if case KeyValueType.CheckboxInput = currentType {
    let currentCheckboxInput = currentKeyQuery.buttons["step unchecked"]
    currentCheckboxInput.tap()
    XCTAssert(currentKeyQuery.buttons["step checked"].exists)
}

Sebagai referensi, currentKeyQuery membuka Sel dan menanyakan teks yang cocok dengan Kunci dari pasangan nilai kunci. Saya tidak dapat mengetuk tombol kotak centang karena tombol tersebut menemukan semuanya yang ada di dalam sel, bukan hanya yang terkait dengan pasangan nilai kunci saat ini yang sedang diuji. Apakah ada cara untuk mengaitkan tombol hanya dengan pasangan nilai kunci saat ini karena semua kotak centang ada dalam sel yang sama?


person droff75    schedule 25.02.2016    source sumber
comment
Saya tidak mengerti: Anda memiliki pasangan nilai kunci. Ini seperti SomeFlag-benarkah? Misalnya. Anda dapat mengatur kunci sebagai accessibilitasIdentifier (jika unik) dan nilai sebagai accessValue. Setelah itu Anda dapat mencari berdasarkan nilai dan ketuk berdasarkan pengenal.   -  person Che    schedule 26.02.2016
comment
@Che Pasangan nilai kunci hanyalah cara untuk menampilkan data yang terkait satu sama lain dalam satu sel. Kode yang menyediakan data untuk sel terlihat seperti ini: KeyValueGroup(keyValues: [KeyValue(key: "key1", value: "value1", type: .CheckboxInput(checkboxTitle: "Title1") Pada dasarnya ada serangkaian pasangan nilai kunci dalam satu grup nilai kunci yang ditampilkan dalam satu sel. Jika bertipe .CheckboxInput, maka tombol kotak centang akan ditampilkan dan judul terkait akan ditampilkan. Karena semua ini ada di sel yang sama, saya tidak bisa membedakannya.   -  person droff75    schedule 26.02.2016


Jawaban (1)


Saya sebenarnya bisa mengetahui hal ini, meskipun saya tidak bisa menjelaskan mengapa ini berhasil. Saya mengubah currentCheckboxInput menjadi currentKeyQuery.childrenMatchingType(.Button).matchingIdentifier("step unchecked").elementBoundByIndex(0)

person droff75    schedule 26.02.2016