Setelah membangun aplikasi saya di Xcode 11 dan menjalankan suite XCUITests, saya mendapatkan banyak kegagalan acak dengan yang berikut ini.
Gagal mendapatkan foto yang cocok: Kesalahan saat mendapatkan jendela utama kAXErrorServerNotFound
Tidak peduli berapa lama saya menambah waktu habis, masalah ini muncul sebentar-sebentar. Tampaknya mengalami masalah Snapshotting hirarki UI. Tes kami lulus secara konsisten dalam Xcode 10.
Saya telah menginstal ulang Xcode. Menghapus semua simulator. Data turunan yang dihapus. Batas waktu yang dimodifikasi. Ditingkatkan dari Xcode 11.1 ke Xcode 11.2.1.
Terima kasih!
Jawaban:
Saya memiliki masalah dengan pencocokan saat saya menjalankan UITest sederhana di Xcode 11.3. Untuk membuatnya bekerja, saya harus menempel pada awalnya:
XCUIApplication().activate()
atauXCUIApplication().launch()
.sumber
Saya telah mengalami masalah yang sama dengan Xcode 11 dan menyadari bahwa pelari tes tidak terbunuh ketika menghentikan tes (atau jika tes gagal karena suatu alasan). Menjalankan tes untuk kedua kalinya akan menelurkan pelari tes baru dan pada saat itu saya memiliki dua pelari yang mencoba berinteraksi dengan aplikasi yang sama, yang mengarah ke kesalahan yang sangat aneh ini.
Untuk membuktikan bahwa saya melakukan hal berikut:
Solusinya adalah berhenti dan membuka kembali simulator untuk memastikan semua proses terbunuh. Semoga ini bisa menyelesaikan masalah Anda
sumber
killall "Simulator" 2> /dev/null; xcrun simctl erase all
, atau jika Anda menggunakan fastlane ada opsi dalam pemindaian untuk mengatur ulang simulator.Saya menggunakan mesin yang berbeda. Mac lama saya mengalami kesalahan ini jauh lebih sering. Dugaan saya adalah mac yang lebih lama tidak memiliki memori yang diperlukan untuk menjalankan XCUITests tertentu dengan benar.
sumber
Saya memenuhi masalah ini dari waktu ke waktu di Xcode 11.1. Saya mengamati bahwa masalah terjadi ketika menunggu elemen UI terutama ada tampilan web yang ditampilkan selama pengujian. Ketika masalah terjadi, saya menggunakan
XCUIElement.waitForExistence(timeout:)
atau berharap denganNSPredicate(format: "exists == true")
. Ketika saya berubah menggunakan ekspektasi denganNSPredicate(format: "hittable == true")
masalah tersebut sepertinya sudah tidak ada, tetapi saya tidak tahu mengapa. Perbedaan antara 2 atribut adalah bahwahittable
hanya mendeteksi elemen pada layar sementaraexists
mendeteksi elemen di luar layar seperti sel di luar layar dari tampilan tabel.sumber
Saya memiliki masalah serupa pada Xcode 11.
Ternyata sebelum diizinkan memiliki pengenal aksesibilitas yang sama di banyak halaman.
Tetapi sekarang menggunakan gaya presentasi modal baru, Anda harus menggunakan pengidentifikasi yang berbeda dalam halaman Anda untuk menghindari konflik.
sumber