Автоматизация IE с Windows PowerShell - PullRequest
2 голосов
/ 27 февраля 2009

Я хочу спросить о манипулировании IE через Powershell. Моя цель - написать скрипт, который будет автоматически выполнять некоторые действия в браузере (на стороне клиента - переходить на страницу, выполнять действия, измерять время между ответами и т. Д.)

У меня есть такая маленькая вещь:

$ie = new-object -com "InternetExplorer.Application"
$ie.visible = $true
$ie.navigate("http://google.com")

Теперь я хочу проверить, остановил ли браузер рендеринг страницы (при условии, что для загрузки Google требуется около 30 секунд). Как я проверил с помощью $ie | get-member, есть свойство DocumentCompleted (событие), но я не знаю, как получить к нему доступ или сравнить его. Как мне это сделать?

Или, может быть, я должен использовать .NET вместо COM-объекта и инициировать $ie с [system.Windows.Forms.WebBrowser]?

ура

редактирование:
Ну ... $ie.busy работает, но (что, может быть, я еще не объяснил ранее), я хочу знать точный момент конкурса рендеринга страниц. Проверка $ie.busy в бесконечном цикле каждую секунду может работать, но я полагаю, это не лучший способ сделать это.

Допустим, страница загружается некоторое время (рендеринг выполняется долго из-за гигантских сценариев на стороне клиента). Хотелось бы узнать, сколько времени займет:

  1. загрузить страницу
  2. сколько времени потребуется для перезагрузки / повторного рендеринга после изменения некоторых данных и нажатия кнопки «Сохранить».

Ответы [ 3 ]

1 голос
/ 27 февраля 2009

Если вы решили перейти на .NET вместо PowerShell, WatiN отлично подходит для этого. Это даст вам массу возможностей по управлению WebBrowser и намного проще в использовании. Вы также можете использовать Firefox в версии 2.

1 голос
/ 27 февраля 2009

Вы можете проверить .busy собственности.

редактирование:

Свойство Status также будет работать здесь. Однако вы можете использовать такой инструмент, как Firebug, чтобы увидеть время загрузки страницы.

0 голосов
/ 02 марта 2009

Поскольку у него есть событие, вы можете попробовать PowerShell Eventing Library . Там написано, что он поддерживает события COM, хотя я не пробовал.

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