ivanov660 / TestingTool-3

Инструмент автоматизации тестирования ПО
Apache License 2.0
104 stars 24 forks source link

Ошибка в окне "Current main window = null. Can't find it." #91

Open asisdes opened 4 years ago

asisdes commented 4 years ago

Опишите ошибку Создал простой действие создание организации, но при прогоне теста выходит ошибка "{ВнешняяОбработка.МенеджерСценарногоТеста.Форма.Модуль_ОбработкаДействийAutomationUI.Форма(187)}: Current main window = null. Can't find it."

Конфигурация Бухгалтерия Казахстана 2.0.31.2 Режим совместимости 8.2.13 Режим совместимости интерфейса 8.2

Платформа 8.3.13.1690

Скорее всего конфа старая, но можете подсказать, как такие баги можно обходить на старых обычных приложениях и формах.

ivanov660 commented 4 years ago

Добрый.

  1. На сколько я понял, то вы хотите использовать интерфейс Automation UI.
  2. Данное сообщение говорит о том, что не найдено основное окно приложения. Если оно не найдено, то невозможно искать объекты внутри.
  3. С данной ошибкой мы тоже сталкивались. Попробуем улучшить поиск текущего окна в ближайшем исправлении.

Для того-чтобы окно успешно нашлось оптимально выполнить следующие рекомендации: a. Текст заголовка окна должен полностью соответствовать текущему заголовку - должно работать во всех случаях. b. Если вы используете поиск по части заголовка, к примеру, "Бухгалтерия предприятия*", тогда при поиске окна обязательно указывать PID тестируемого клиента.

  1. С работой приложений 1С на обычных формах существует достаточно подводных камней. Они связаны с тем что 1С не полностью поддерживает стандарт Microsoft Automation UI, и для созданных ими элементов очень мало маркеров (класс, наименования и т.п.) Поэтому мы специально добавили возможность искать элементы по пути - xPath. Этот путь относительно центрального окна и позволяет указывать через элементы .//window/pane[1]/pane[13]/pane[1]/pane[3]/pane[1]/pane[1] можно вставлять - будет значить любой, главное чтобы в конце совпал путь до элемента .//window/pane[1]/pane[13]/pane[]/pane[3]/pane[1]/pane[1]
  2. Используйте нажатия кнопки мыши а) типовое click - позволяет отправить типовую команду на элемент б) если не работает пробуйте click (simulate) - использует принудительную отправку (симуляцию) нажатия кнопки в) если не работает то последний вариант click% выполняет перемещение мышки в область % относительно внутренних размеров элемента управления и нажимает (т.е. двигает курсор в позицию)
  3. Если есть еще вопросы, постараюсь ответить, мы в основном используем API 1C Automation в 90% случаев. Поэтому будет интересно пообщаться.
ivanov660 commented 4 years ago

Мы доработали функционал поиска основного окна, в случае, когда не указан PID тестируемого клиента. Можете скачать обновление с адреса http://testingtool.ru/external-user-interface-testing-tool-winautomationui/

ivanov660 commented 4 years ago

@asisdes я закрываю тикет? есть еще вопросы?

asisdes commented 4 years ago

Доброго дня! А можно пока не закрывать! Я по времени еще не успел повторно протестировать, думал как раз на блокноте и калькуляторе по тренироваться и вам отписаться.

ivanov660 commented 4 years ago
  1. Ок. Ждем.
  2. Сейчас мы оформляем документацию. В процессе оформления часть по Менеджеру сценарного теста: Фреймворк Тестирование 3 - Раздел Менеджер сценарного теста.pdf
  3. Если будут вопросы спрашивайте