powershell能够控制IE导航有任何先决条件吗?

问题描述 投票:0回答:1

我很难在应用程序浏览器中捕获搜索结果。

要求:1.登录到应用程序URL。2.搜索3.捕获结果

我有一个代码,它在一台服务器上可以正常工作,但在其他计算机上却表现得很奇怪。 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
html powershell internet-explorer dom automation
1个回答
0
投票

我试图测试您的代码以检查其中是否存在问题。根据我的测试结果,您的代码在我这一方面工作正常。

经过一些研究,我发现此问题可能与Internet Explorer安全设置有关。

[我注意到当Internet区域保护模式启用时,我会得到相同的行为。

enter image description here

出于测试目的,您可以尝试禁用 保护模式InternetLocal Intranet区域,以查看它是否有助于解决您的问题。或者,您可以尝试以Administrator。]的身份运行脚本。

要禁用保护模式,您可以参考以下步骤。

  1. 启动Internet Explorer

    浏览器。
  2. 单击工具

  3. (ALT + X)。
  4. 单击Internet选项

  5. 单击安全性

  6. 选项卡。
  7. 未选中

  8. InternetLocal Intranet区域的启用保护模式选项。
  9. 重新启动

  10. Internet Explorer浏览器。

    此后,请尝试运行您的PowerShell脚本以查看结果。

让我们知道您的测试结果,是否可以解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.