Можете ли вы измерить время ($ ie.Busy -eq $ true) - PullRequest
1 голос
/ 29 октября 2019

Я не смог найти точного ответа на этот вопрос, когда исследовал это, но мне было любопытно, можно ли измерить while ($ie.Busy -eq $true) в качестве времени.

У меня есть скрипт, который взаимодействует с Internet Explorer ивыполняя задачи, я подумал, что было бы хорошо с точки зрения сбора данных регистрировать время загрузки или подобное.

Возможно ли это с помощью while ($ie.Busy -eq $true) или есть другой способ измерить это?

1 Ответ

1 голос
/ 29 октября 2019

То, что вы хотите записать, это $startLoadTime и $endLoadTime и получите разницу между ними (Start-Sleep в цикле не является обязательным, но не позволит процессу Powershell использовать слишком много ЦП):

$startLoadTime = [DateTime]::Now
while( $ie.Busy ){
  Start-Sleep -Milliseconds 200
}
$endLoadTime = [DateTime]::Now
$loadTimeElapsed = $endLoadTime - $startLoadTime

Возвращенная переменная $loadTimeElapsed представляет собой объект System.TimeSpan, который позволяет легко просматривать и обрабатывать прошедшее время.

Обратите внимание, что во время ожидания $ie.Busy чтобы стать $false вы не хотите, чтобы цикл работал без ограничений (будет занимать больше процессорного времени, чем вы хотите), поэтому я добавил туда Start-Sleep. Вы можете настроить количество миллисекунд для своих нужд, если вам нужно разрешение меньше «в пределах 200 мс».

...