Xcode 11 XCUITest Gagal mendapatkan snapshot yang cocok: Kesalahan mendapatkan jendela utama kAXErrorServerNotFound


21

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!

 


bahkan saya menghadapi masalah yang sama, apakah Anda mendapatkan solusi untuk hal yang sama.
Samarth Kejriwal

Jawaban:


9

Saya memiliki masalah dengan pencocokan saat saya menjalankan UITest sederhana di Xcode 11.3. Untuk membuatnya bekerja, saya harus menempel pada awalnya: XCUIApplication().activate()atau XCUIApplication().launch().


Ini bekerja .. terima kasih
RJ168

Jawaban ini tampaknya menjadi cara untuk pergi tetapi saya mengalami masalah memahami apa artinya? Di mana saya harus mengetik XCUIApplication (). Activiate () dan / atau XCUIApplication (). Launch ()?
Charlie Seligman

Di dalam fungsi tes ui Anda
Денис Грищенко

0

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:

  1. Membuat tes UI yang mengetik teks panjang dalam tampilan teks
  2. Jalankan tes, dan secara manual menghentikannya ketika ada beberapa kalimat dalam tampilan teks
  3. Secara manual membuka aplikasi di simulator (bukan dengan menjalankan tes)
  4. Mengamati bahwa karakter acak muncul dalam tampilan teks, meskipun tidak ada tes yang berjalan.

Solusinya adalah berhenti dan membuka kembali simulator untuk memastikan semua proses terbunuh. Semoga ini bisa menyelesaikan masalah Anda


Terima kasih atas wawasannya! Sekarang Anda mengatakan ini yang sesuai dengan apa yang saya amati. Sayangnya, seperti yang saya katakan di posting asli saya, saya sudah mencoba menghapus semua simulator. Tes ini dijalankan sebagai bagian dari build kami baik secara lokal maupun pada sistem CI kami. Apakah Anda mengetahui cara mengotomatiskan proses ini?
Luke Street

Apa yang akhirnya kami lakukan pada sistem CI kami secara eksplisit membunuh Simulator sebelum menjalankan test suite. Misalnya Anda dapat menjalankan killall "Simulator" 2> /dev/null; xcrun simctl erase all, atau jika Anda menggunakan fastlane ada opsi dalam pemindaian untuk mengatur ulang simulator.
erudel

0

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.


0

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 dengan NSPredicate(format: "exists == true"). Ketika saya berubah menggunakan ekspektasi dengan NSPredicate(format: "hittable == true")masalah tersebut sepertinya sudah tidak ada, tetapi saya tidak tahu mengapa. Perbedaan antara 2 atribut adalah bahwa hittablehanya mendeteksi elemen pada layar sementara existsmendeteksi elemen di luar layar seperti sel di luar layar dari tampilan tabel.

expectation(for: NSPredicate(format: "hittable == true"), evaluateWith: element, handler: nil)
waitForExpectations(timeout: 60, handler: nil)

0

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.