Xcode 11 XCUITest Не вдалося отримати відповідні знімки: Помилка отримання головного вікна kAXErrorServerNotFound


21

Після побудови свого додатка в Xcode 11 та запуску мого набору XCUITests я отримую багато випадкових збоїв із наступним.

Не вдалося отримати відповідні знімки: Помилка отримання головного вікна kAXErrorServerNotFound

Незалежно від того, наскільки я збільшую час очікування, проблеми виникають з перервами. Схоже, виникають проблеми, що знімають ієрархію інтерфейсу користувача. Наші тести послідовно проходять у Xcode 10.

Я перевстановив Xcode. Видалено всі тренажери. Очищені отримані дані. Змінені таймаути. Оновлено з Xcode 11.1 до Xcode 11.2.1.

Дякую!

 


навіть я зіткнувся з одним і тим же питанням, чи не вдалося вам вирішити те саме?
Самарт

Відповіді:


9

У мене виникли проблеми зі збігом, коли я запускав простий UITest у Xcode 11.3. Щоб спрацювати, мені довелося спочатку вставити: XCUIApplication().activate()або XCUIApplication().launch().


Це працює .. дякую
RJ168

Ця відповідь здається дорогою, але у мене виникають проблеми з розумінням того, що це означає? Де слід ввести XCUIApplication (). Activiate () та / або XCUIApplication (). Start ()?
Чарлі Селігман

Всередині вашої функції тестування на інтерфейс користувача
Денис Грищенко

0

Я зіткнувся з тією ж проблемою з Xcode 11 і зрозумів, що тестовий бігун не загинув під час зупинки тестів (або якщо тест зазнав краху з якоїсь причини). Виконання тестів вдруге призведе до появи нового тестового бігуна, і в цей момент у мене було два бігуни, які намагалися взаємодіяти з одним і тим же додатком, що призводило до цієї дуже дивної помилки.

Щоб довести, що я зробив наступне:

  1. Створено тест інтерфейсу користувача, який набирає довгий текст у текстовому вікні
  2. Пройшов тест і вручну зупинив його, коли в текстовому вікні було кілька речень
  3. Відкрив додаток вручну в тренажері (не запускаючи тест)
  4. Зауважили, що у текстовому вікні відображаються випадкові символи, хоча тести не виконувались.

Вирішення проблеми полягало у тому, щоб кинути та знову відкрити тренажер, щоб переконатися, що всі процеси загинули. Сподіваюся, це вирішить ваші проблеми


Дякую за розуміння! Тепер, коли ви це говорите, це відповідає тому, що я спостерігав. На жаль, як я вже говорив у своєму початковому дописі, я вже спробував видалити всі тренажери. Ці тести проводяться як частина наших побудов як локально, так і на нашій системі ІС. Чи знаєте ви все-таки про автоматизацію цього процесу?
Люк-стріт

I Те, що ми в кінцевому підсумку робили в нашій системі CI, було явно вбивати симулятор перед запуском тестового набору. Наприклад killall "Simulator" 2> /dev/null; xcrun simctl erase all, ви можете запустити , або якщо ви використовуєте fastlane, є варіанти сканування для скидання тренажера.
ерудел

0

Я використовую різні машини. Мої старіші Маки відчувають цю помилку набагато частіше. Моя здогадка, що для старих маків немає пам'яті, необхідної для правильного запуску певних XCUITests.


0

Я час від часу зустрічаюся з проблемою в Xcode 11.1. Я зауважив, що ця проблема трапляється під час очікування елементів інтерфейсу, особливо там, де під час тесту відображається веб-перегляд. Коли виникла проблема, я використовував XCUIElement.waitForExistence(timeout:)або сподівався NSPredicate(format: "exists == true"). Коли я змінив використання очікування з NSPredicate(format: "hittable == true")проблемою, схоже, немає, але я не знаю чому. Різниця між двома атрибутами полягає в тому, що hittableвиявляють лише екранні елементи, в той час як existsвиявляють позаекранні елементи, такі як позаекранні комірки таблиці.

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

0

У мене був аналогічний випуск на Xcode 11.

Виявилося, що раніше було дозволено мати однаковий ідентифікатор доступності на багатьох сторінках.

Але тепер, використовуючи новий модальний стиль викладу, слід використовувати різні ідентифікатори на своїх сторінках, щоб уникнути конфліктів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.