Xcode 11 XCUITest Eşleşen anlık görüntüler alınamadı: Ana pencere kAXErrorServerNotFound alınırken hata oluştu


21

Xcode 11'de uygulamamı oluşturduktan ve XCUITests takımımı çalıştırdıktan sonra aşağıdakilerle birçok rastgele hata alıyorum.

Eşleşen anlık görüntüler alınamadı: Ana pencere kAXErrorServerNotFound alınırken hata oluştu

Zaman aşımlarını ne kadar artırırsam sürsün, sorunlar aralıklı olarak ortaya çıkar. UI hiyerarşisinin anlık görüntüsünün alınmasıyla ilgili sorunlar var gibi görünüyor. Testlerimiz Xcode 10'da tutarlı bir şekilde geçer.

Xcode'u yeniden yükledim. Tüm simülatörleri sildi. Türetilmiş veriler temizlendi. Değiştirilmiş zaman aşımları. Xcode 11.1'den Xcode 11.2.1'e yükseltildi.

Teşekkürler!

 


Ben bile aynı sorunla karşı karşıya, aynı için herhangi bir geçici çözüm aldın mı.
Samarth Kejriwal

Yanıtlar:


9

Ben Xcode 11.3 basit UITest çalışırken eşleştirme ile ilgili bir sorun vardı. Çalışması için önce yapıştırmam gerekiyordu: XCUIApplication().activate()ya da XCUIApplication().launch().


Bu çalışıyor .. teşekkür ederim
RJ168

Bu cevap yolun bir yolu gibi gözüküyor ama bunun ne anlama geldiğini anlamakta sorun mu yaşıyorsunuz? XCUIApplication (). Activiate () ve / veya XCUIApplication (). Launch () 'i nereye yazmalıyım?
Charlie Seligman

UI test fonksiyonunuzun içinde
Денис Грищенко

0

Xcode 11 ile aynı sorunu yaşadım ve test çalıştırıcısının testleri durdururken (veya test herhangi bir nedenle çöktüğünde) öldürülmediğini fark ettim. Testleri ikinci kez çalıştırmak yeni bir test koşucusu ortaya çıkaracaktı ve bu noktada aynı uygulamayla etkileşime girmeye çalışan iki koşucum vardı ve bu çok garip bir hataya yol açtı.

Aşağıdakileri yaptığımı kanıtlamak için:

  1. Metin görünümünde uzun bir metin yazan bir kullanıcı arayüzü testi oluşturuldu
  2. Testi çalıştırın ve metin görünümünde birkaç cümle olduğunda manuel olarak durdurun
  3. Uygulamayı simülatörde manuel olarak açtı (testi çalıştırarak değil)
  4. Herhangi bir test yapılmamasına rağmen metin görünümünde rastgele karakterlerin göründüğünü gözlemledi.

Çözüm, tüm işlemlerin öldürüldüğünden emin olmak için simülatörü bırakmak ve yeniden açmaktı. Umarım bu, sorunlarınızı çözer


İçgörü için teşekkürler! Şimdi bunu gözlemlediklerimle aynı doğrultuda olduğunu söylüyorsun. Ne yazık ki, orijinal yazımda söylediğim gibi, tüm simülatörleri silmeyi zaten denedim. Bu testler, hem yerel olarak hem de CI sistemimizdeki yapılarımızın bir parçası olarak gerçekleştirilir. Bu işlemi otomatikleştirmek için yine de biliyor musunuz?
Luke Street

I CI sistemimizde yaptığımız şey, bir test paketi çalıştırmadan önce Simülatörünü açıkça öldürüyordu. Örneğin çalıştırabilirsiniz killall "Simulator" 2> /dev/null; xcrun simctl erase allveya fastlane kullanıyorsanız, simülatörü sıfırlamak için taramada seçenekler vardır.
erudel

0

Farklı makineler kullanıyorum. Eski Mac'lerim bu hatayı çok daha sık yaşıyor. Benim tahminim eski mac'ların belirli XCUITest'leri doğru bir şekilde çalıştırmak için gerekli belleği yok.


0

Bu sorunu zaman zaman Xcode 11.1'de karşılıyorum. UI öğelerini beklerken sorunun özellikle test sırasında gösterilen web görünümü olduğunu gözlemledim. Sorun olduğunda ben kullanıyordum XCUIElement.waitForExistence(timeout:)veya bekliyordum NSPredicate(format: "exists == true"). Sorunla ilgili beklentileri kullanmak için değiştiğimde NSPredicate(format: "hittable == true")gitmiş gibi görünüyor ama nedenini bilmiyorum. 2 öznitelik arasındaki fark , bir tablo görünümünün ekran dışı hücreleri gibi ekran dışı hittableöğeleri algılarken yalnızca ekran öğelerini existsalgılamasıdır.

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

0

Xcode 11'de de benzer bir sorun yaşadım.

Birçok sayfada aynı erişilebilirlik tanımlayıcısına izin verilmeden önce ortaya çıktı.

Ancak şimdi yeni kalıcı sunum stilini kullanarak, çakışmalardan kaçınmak için sayfalarınızda farklı tanımlayıcılar kullanmalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.