Выполнить JavaScript через ком-интерфейс Internet Explorer, используя PowerShell - PullRequest
6 голосов
/ 18 сентября 2009

Я пишу некоторые сценарии автоматизации Internet Explorer, используя PowerShell. Вот как я запускаю объект com com:

$ie = New-Object -com "InternetExplorer.Application"
$ie.Navigate("about:blank")
$ie.visible = $true

$doc = $ie.Document

Итак, я хотел бы выполнить javascript для объекта $ doc. Например, у меня есть элемент на странице, который имеет событие onclick, которое выполняет «submitCommand ('lookup')», поэтому я хотел бы запустить его непосредственно в $ doc, вместо того, чтобы искать объект на странице и затем вызывая метод Click () для него.

Это было бы проще, поскольку у объекта нет ни имени, ни идентификатора, что делает его очень разумным для изменения, поскольку я могу полагаться только на его положение на странице (например, на элементе 11-го диапазона на странице).

В качестве альтернативы, как бы вы выбрали элементы в зависимости от их класса? Это очень помогло бы, так как у «кнопки» есть свой собственный класс.

Спасибо

1 Ответ

4 голосов
/ 22 сентября 2009

$spans=@($ie.document.getElementsByTagName("SPAN"))

Передача к объекту where для фильтрации нужного объекта (на основе его атрибутов), а затем вызов метода click, например:

$span11 = $spans | where {$_.innerText -eq 'something'}
$span11.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...