Определите заголовок окна с двумя именами классов, используя условие ИЛИ - PullRequest
0 голосов
/ 25 июня 2019

Я использую autoit для загрузки файлов в мое веб-приложение.Я планирую интегрировать Selenium и AutoIt, как упомянуто в https://www.guru99.com/use-autoit-selenium.html

. Моя проблема сейчас заключается в том, что я нажимаю кнопку загрузки. В chrome окно загрузки заголовка появляется как «Открыть», а в Firefox заголовок выглядит как «Файл загружен".Поэтому мой вопрос заключается в том, есть ли в autoit способ найти заголовок окна, используя разные значения.т.е. "Открыть" ИЛИ "Загрузка файла"

Вот мой код для загрузки файла в chrome

WinWait("Open", "", 60)
WinActivate("Open")
ControlFocus("Open","","Edit1")
ControlSetText("Open","","Edit1", "C:\abc.war")
ControlClick("Open","", "Button1")

Вот мой код для загрузки файла в Firefox

WinWait("File Upload", "", 60)
WinActivate("File Upload")
ControlFocus("File Upload","","Edit1")
ControlSetText("File Upload","","Edit1", "C:\abc.war")
ControlClick("File Upload","", "Button1")

1 Ответ

0 голосов
/ 25 июня 2019

Вы можете использовать регулярные выражения, чтобы найти нужное окно:

Opt("WinTitleMatchMode", 4)

$handle = WinGetHandle("[REGEXPTITLE:(?:Open|File Upload)]")

;In case window was not found
If @error Then Exit

WinWait($handle, "", 60)
WinActivate($handle)
ControlFocus($handle,"","Edit1")
ControlSetText($handle,"","Edit1", "C:\abc.war")
ControlClick($handle,"", "Button1")

Однако, это все еще не очень надежный способ. Некоторые другие предложения, которые могут быть рассмотрены дополнительно:

  • Проверьте класс окна. Окно загрузки является диалоговым окном, поэтому его класс будет #32770 в соответствии с этим списком
  • Проверьте текущее активное окно, используя WinGetHandle("[ACTIVE]")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...