Internet Explorer dom在不同的环境中表现不同

时间:2014-09-16 16:28:35

标签: java powershell

我有一个类似于这个

的powershell脚本
param(
   [string]$u,
   [string]$p
)

$username = $u
$password = $p

cd HKCU:\"Software\Microsoft\Windows\CurrentVersion\Internet Settings"
set-itemproperty . ProxyEnable 1
$url = "https://ameriprisestage.service-now.com/"
$ie = New-Object -com internetexplorer.application;

$ie.visible = $true; 
$ie.navigate($url);
while ($ie.ReadyState -ne 4 -or $ie.Busy)
{
     start-sleep -s 5;
}

 $ieFrame = $ie.Document.getElementById("gsft_main")

 if (($ieFrame -eq $null)) {
    "ieframe is null" | Out-File 'D:\\file.txt' -Append
    exit
 }

 $usrCtrl = $ie.Document.getElementById("user_name")
 if ($usrCtrl -eq $null) {
     " usrCtrl is null at 1" |Out-File 'D:\\file.txt' -Append
 }

 $usrCtrl = $ieFrame.document.getElementById("user_name")
 if ($usrCtrl -eq $null) {
     " usrCtrl is null at 2" |Out-File 'D:\\file.txt' -Append
 }

 $usrCtrl = $ieFrame.contentWindow.document.getElementById("user_name")
 if ($usrCtrl -eq $null) {
     " usrCtrl is null at 3" |Out-File 'D:\\file.txt' -Append
 }

 $usrCtrl = $ieFrame.contentDocument.getElementById("user_name")
 if ($usrCtrl -eq $null) {
      " usrCtrl is null at 4" |Out-File 'D:\\file.txt' -Append
 }

 $usrCtrl = $ieFrame.getElementById("user_name")
 if ($usrCtrl -eq $null) {
    " usrCtrl is null at 5" |Out-File 'D:\\file.txt' -Append
  }

 $usrCtrl.value=$username
 $pass=$ieFrame.contentWindow.Document.getElementById("user_password").value=$password
 $buttn=$ieFrame.contentWindow.document.getElementById("sysverb_login").click()

当我从powershell ISE运行此代码时,我在3和5处得到usrCtrl not null但是当我从java程序调用相同的代码时,我得到usrCtrl在1,2,3和5处为空。

我无法弄清楚发生了什么。有人可以帮助我..

由于 Sujith

1 个答案:

答案 0 :(得分:0)

更改此

cd HKCU:\"Software\Microsoft\Windows\CurrentVersion\Internet Settings"

cd "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

和此:

D:\\file.txt

D:\file.txt