我有一个类似的powershell脚本
param(
[string]$u,
[string]$p
)
$username = $u
$password = $p
cd HKCU:"SoftwareMicrosoftWindowsCurrentVersionInternet 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不为null。但是当我从java程序中调用相同的代码时,我得到usrCtrl在1、2、3、4和5处为null。
我搞不清楚发生了什么事。有人能帮我吗。。
谢谢Sujith
更改此
cd HKCU:"SoftwareMicrosoftWindowsCurrentVersionInternet Settings"
至
cd "HKCU:SoftwareMicrosoftWindowsCurrentVersionInternet Settings"
这个:
D:\file.txt
至
D:file.txt