Powershell для автоматизации тестирования веб-сайтов с помощью модального диалога
Работа над быстрым сценарием Powershell для использования объекта IE для ввода значений и отправки веб-страницы с модальным диалоговым окном. Я хочу иметь возможность вызвать модальное диалоговое окно, установить флажки в этом диалоговом окне, а затем закрыть его и вернуться на страницу. Я могу вызвать модальное диалоговое окно, но после строки ничего не выполняется, чтобы вызвать диалоговое окно, пока оно не будет закрыто.
Powershell
$ie = new-object -com "InternetExplorer.Application"
$ie.visible = $true
$ie.navigate($url); do {sleep 1} until (-not ($ie.Busy))
$doc = $ie.Document
$books = $doc.getElementById(“searchBooks”).click();
Javascript
var ret = window.showModalDialog('selectBooks.aspx, books, ...);
Мне нужен способ вызывать команды в контексте диалога. Пробовал работать в фоновом режиме и создавать пространство для выполнения, но не радует ни одно из решений
& {$books = $doc.getElementById(“searchBooks”).click();}
(Блокировка)
$rs = [Management.Automation.Runspaces.RunspaceFactory]::CreateRunspace()
$rs.Open()
$rs.SessionStateProxy.SetVariable("doc", $doc)
$p = $rs.CreatePipeline( { $books = $doc.getElementById(“searchBooks”).click(); } )
$p.Input.Close()
$p.InvokeAsync()
(не блокирует, но у меня не было ручки для элементов диалога)
1 ответ
Это ожидаемое поведение модального диалога. Если вы хотите взаимодействовать с диалогом, возможно, showModelessDialog()
это то, что вы хотите.