Есть ли какие-либо предпосылки для PowerShell, чтобы иметь возможность управлять IE навигацией? - PullRequest
0 голосов
/ 23 апреля 2020

У меня проблемы с записью результатов поиска в браузере приложения.

Требование: 1. Войти в URL приложения. 2.Поиск 3.Capture result

У меня есть код, и он отлично работает на одном сервере, но на других машинах ведет себя странно. Версия powershell и IE (11) одинаковы для всех из них. На хорошем сервере все работает хорошо. На плохих серверах powershell не может получить имена элементов и классов только для точки 3. Он каждый раз захватывает пустую строку. Даже $ ie .Document.getElementsByTagName ("body") на плохих серверах возвращает пустое значение.

Я новичок в powershell и не уверен, что что-то пропустил. Может кто-нибудь, пожалуйста, предложить мысли здесь?

Ниже код:

$username = "user1" 
$password = "pwd1" 
$url="application URL"
$search="tamanna"
$ie = New-Object -ComObject 'InternetExplorer.Application' 
$ie.visible=$true
$ie.navigate($url)
while($ie.ReadyState -ne "4") 
{
start-sleep -Seconds 5;
}
($ie.document.getElementById("login-form-username") |select -first 1).value = $username;
($ie.document.getElementById("login-form-login-password") |select -first 1).value = $password;
$ie.document.getElementById("login-form-login").click()
while ($ie.Busy -eq $true) { Start-Sleep -Seconds 5; }
$ie.navigate("Search URL within application")
while ($ie.ReadyState -ne "4") { Start-Sleep -Seconds 5; }
$text=$ie.Document.getElementsByTagName("span") | Where-Object{$_.className -eq 'class1_unique'} |select -first 1
while ($ie.ReadyState -ne "4") { Start-Sleep -Seconds 5; }
$searchResult=$text.innerText
$searchResult

1 Ответ

0 голосов
/ 24 апреля 2020

Я попытался проверить ваш код, чтобы проверить, есть ли в нем какая-то проблема или нет. Основываясь на моих результатах тестирования, ваш код работает нормально на моей стороне.

После некоторых исследований я обнаружил, что проблема может быть связана с Inte rnet Настройки безопасности Explorer .

Я заметил, что у меня такое же поведение, когда Защищенный режим включен для зоны Inte rnet .

enter image description here

В целях тестирования вы можете попробовать отключить Защищенный режим для Inte rnet и Local intr anet zone, чтобы увидеть, поможет ли это решить вашу проблему. В качестве альтернативы, вы можете попробовать запустить скрипт как Администратор .

Чтобы отключить защищенный режим, вы можете обратиться к следующим шагам.

  1. Запустите браузер Inte rnet Explorer .

  2. Нажмите Инструменты (ALT + X).

  3. Нажмите Inte rnet options .

  4. Нажмите на вкладку Security .

  5. Не проверено Параметр Включить защищенный режим для Inte rnet и Local intr anet зоны.

  6. Перезапустите браузер Inte rnet Explorer.

После этого попробуйте запустить скрипт PowerShell, чтобы увидеть результат.

Сообщите нам о результатах тестирования, независимо от того, была ли устранена эта проблема.

...