Нажатие кнопки PowerShell JavaScript Есть ли команда Force? - PullRequest
1 голос
/ 06 декабря 2010

Я хочу создавать автоматизированные веб-тесты с PowerShell.Моя проблема в том, что когда я нажимаю кнопку с всплывающим JavaScript-кодом, сценарий зависает в следующей строке, потому что событие не завершено.Всплывающее окно загружено, но скрипт зависает.

Есть ли какая-либо команда принудительного ввода?Потому что в следующих строках я хочу использовать командлет для нажатия кнопки ОК.

$ie.Document.getElementById("ButtonID")|foreach{$_.Click()} #never finished

1 Ответ

1 голос
/ 21 декабря 2010

Существует два подхода к этой распространенной проблеме с автоматическим тестированием в браузерах. Ваш первый вариант - переопределить все функции javascript с помощью собственной фиктивной реализации.

window.alert = function(msg) { log_info(msg); };
window.prompt = function(msg) { return fixture(msg); };
window.confirm = function(msg) { return randomBool; };

Изменение этих функций (а также других функций, таких как печать и т. Д.) Перед началом автоматизации остановит запросы на блокировку процесса. Но вам, возможно, все же придется беспокоиться о предупреждениях безопасности и диалоговых окнах учетных данных.

Итак, второй подход - запустить утилиту мониторинга, которая может взаимодействовать с окнами на уровне ОС. Взгляните на IEUnit - http://code.google.com/p/ieunit/. Он использует пользовательский элемент управления activex, называемый Desktoop (ошибочно написан специально), который позволяет взаимодействовать с окнами и предупреждениями безопасности от Windows Script Host.

Таким образом, вы можете использовать объект activex в powershell или воспользоваться этой ссылкой - http://msdn.microsoft.com/en-us/magazine/cc163301.aspx, чтобы узнать, как реализовать собственный настольный модуль с использованием собственных возможностей powershell

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...