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() это то, что вы хотите.

Другие вопросы по тегам