Winium: Обработка User Account Control сообщений


(Git Hub Test User5) #1

Добрый день, пытаюсь автоматизировать процесс инсталляции с помощью Winium.Desktop на Windows 10. Столкнулась с проблемой сообщений от User Account Control. Похоже, что автоматизировать нажатие на эти сообщения нельзя.
Может кто-то сталкивался с таким, как решали?

Заранее спасибо!


(Git Hub Test User5) #2

Может есть какой-то способ запуска инсталлятора (MSI файла) от администратора?


(Nik Sidorenko) #3

Пробовали запускать сам Winium от имени адмнистратора. В этом случае, по-идее, инсталяция тоже будет запускаться от мени администратора.

А просто выключить UAC можно? или тест требует чтобы он был включён?
Пробовали делать пряпой SendKey?

Так же можно почитать тут https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/674b4951-1c6e-400a-838e-dc72c672a12c/uac-automation-success?forum=windowssecurity


(Git Hub Test User5) #4

При запуске Winium от имени администратора инсталлятор тоже запускается от имени администратора. Проблема решена. Спасибо за помощь!


(Nik Sidorenko) #5

Не забывайте закрывать тему и ставить галочку "ответ", чтобы другие тратили меньше времени на поиск решения.


(Git Hub Test User5) #6

При автоматизации деинсталляции приложения снова возникла проблема с User Account Control сообщениями. Не смотря на то, что Control Panel и Winium запущены с правами администратора, сообщение от User Account Control все равно отображается.

Не подскажите как можно сделать прямой SendKeys?


(Nik Sidorenko) #7

Попробуйте как-то так
var driver = new WiniumDriver();
driver.Keyboard.SendKeys(Keys.ArrowLeft);
driver.Keyboard.SendKeys(Keys.Enter);

Хотя у меня нет уверенности, что это сработает. UAC может и это блокировать.

А какая конечная цель? Проверить что приложение можно удалить через Control Panel или просто удалить приложение? Если просто удалить приложение, то можно попробовать запустить тот же инсталяционный файл и выбрать опцию Remove.
Также возможно Ваш инсталятор поддерживает silent деинсталяцию, которую пожно вызвать как команду в командной строке.