0

Я использую рамки TestStack.White для автоматизации открытия нового документа в MS Word 2013.Как найти окно по заголовку переменной с помощью TestStack.White framework?

Я открываю Microsoft Word, приложение с:

Application application = Application.Launch("winword.exe"); 

После этого, я пытаюсь получить окно с помощью частичного название:

Window window = application.GetWindow("Word", InitializeOption.NoCache); 

Но это исключение, в котором говорится, что такого окна нет.

заголовок окна: Document1 - Слово

Вопрос: Как получить окно, часть заголовка, принимая во внимание, что название меняется каждый раз: «документ2 - Слово», «Document3 - Слово »и т.д.

также пытался * Слово, но выглядит эта функ не поддерживает подстановочные

Если я призываю: Список окон = application.GetWindows(); после запуска приложения список окон пуст.

Спасибо заранее, Остап

ответ

0

Похоже окно открытия занимает некоторое заметное время. Интерфейсы тестирования графического интерфейса часто имеют такие функции, как Wait(), чтобы убедиться, что окно уже создано/видимо/включено. Я не эксперт в Teststack.White. Возможно, этот документ может помочь: http://teststackwhite.readthedocs.io/en/latest/AdvancedTopics/Waiting/

+0

спасибо, проверю –

+0

Уэйтс не помогает, окно не было найдено через 30 секунд. Пытался искать по названию, что на 100% на экране. Также попробовал спящий режим в течение 10 секунд до поиска окна. –

+0

ОК, это Microsoft. :) Как об использовании интерфейса COM-взаимодействия и объектной модели Word? http://msdn.microsoft.com/en-us/library/kw65a0we.aspx –

0

Вы можете использовать EnumWindows, чтобы найти все открытые окна.

В этой функции обратного вызова, вы получите дескриптор окна, который вы можете нам с GetWindowTextLength и GetWindowText

Это позволит вам решить, что дескриптор окна является окно, которое вы хотите. Оттуда вы можете использовать GetWindowThreadProcessId для получения идентификатора процесса для документа слова.

И, наконец, что вы можете создать приложение TestStack White с помощью Application.Start()

 Смежные вопросы

  • Нет связанных вопросов^_^