1
我可以使用這個簡單的腳本(或根據Id的輕微變化)登錄到Facebook,或谷歌,或stackoverflow。但是,我的公司有一個網站,我無法登錄到使用PowerShell。通過powershell登錄到內部網站
$ie = New-Object -com InternetExplorer.Application
$ie.visible=$true
$ie.navigate("www.loginpage.com")
start-sleep 1;
# I was using this before, but it would never leave the loop...
# while($ie.ReadyState -ne 4) {start-sleep -m 100}
$ie.document.getElementById("username").value = "username"
$ie.document.getElementById("password").value = "password"
$ie.document.getElementById("loginform").submit()
我認爲,唯一不同的是,該網站是我們的「內聯網」,不能上網,而出於某種原因PowerShell中的兩者之間的區別。但我不確定,我仍然可以正常打開IE瀏覽器並轉到網址並查看源代碼,並查看代碼ID和其他內容。
有沒有人知道爲什麼我在使用$ie.document.getElementById
時遇到以下錯誤。
You cannot call a method on a null-valued expression.
+ CategoryInfo : InvalidOperation: (getElementById:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
我知道的標籤是:
<input name="username" id="username" langcode="EN" type="text">
<input name="password" id="password" type="password">
任何想法?
可能的重複http://stackoverflow.com/questions/15243990/powershell-website-login-not-working?rq=1 – Matt 2014-08-27 18:27:55
這意味着在$ ie中沒有當前文檔,也許該頁面尚未加載?我使用'開始 - 睡眠1}直到(!($ IE.Busy))'等待。 – TheMadTechnician 2014-08-27 18:28:06
@TheMadTechnician它很快就打破了這個循環,之後我仍然得到了'null-value expression'錯誤。我在上面的代碼中註釋了以前的等待循環,而且似乎無限期地運行。 – 2014-08-27 18:32:49