Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как обработать системные (виндовые) окна Выбор сертификаты при входе в систему


(Ssorn) #1

Вопрос заключается в том как обработать, два окна которые показаны на скриншоте, селениум веб драйвер не работает с системными окнами, но может кто подскажет инструмент который не конфликтует с ним, и поможет обработать данные окна.
Пробовал робот фреймворк, что бы он нажимал несколько раз энтер и тем самым проходил данный этап аутентификации, но не сработал.
Интересует как именно обратать данные окна, а не просто обойти данные окна.


(Maksim Smolyakov) #2

Судя по открытым вкладкам, Вы уже копаете в подходящем направлении - AutoIt, Sikuli.


(Евгений Бухгаммер) #3

библиотека pywinauto на Питоне:

https://pywinauto.googlecode.com/hg/pywinauto/docs/contents.html (официальная документация)
https://github.com/vasily-v-ryabov/pywinauto-64 (форк проекта, обновленный)

пример кода для Вашего окна:

from pywinauto import application
app = application.Application()
app[u'Запрос разрешения на использование ключа'].RadioButton1.Click()
app[u'Запрос разрешения на использование ключа'].Edit1.SetEditText('mypassword')
app[u'Запрос разрешения на использование ключа'].OK.Click()

учтите, что окно в момент вызова может еще не существовать, помогают паузы в коде или функция pywinauto.timings.WaitUntil()


(Illya Shykyrinsky) #4

Доречі з AutoIT можна працювати програмно(Java) через COM використовуючи JACOB. В результаті буде щось на зразок:

AutoItX x = new AutoItX();
        x.run("calc.exe");
        x.winActivate("Calculator");
        x.winWaitActive("Calculator");
            //Enter 3
        x.controlClick("Calculator", "", "133") ;

(Ssorn) #5

Да, для кальлятора все работает замечательно, но для данных окон что я сбросил, АвтоИтИнфо не находит айди для поиска, точнее его там просто нету. Юзал UI Spy там ай тоже не показывает по данным попапам.
Сейчас пытаюсь разобраться как клацать по другому локатору