我想寫一個基本的PowerShell腳本登錄到Gmail,但有一些問題。代碼如下。我已經評論了一些東西來縮小範圍。PowerShell網站登錄不工作
$url = "http://gmail.com"
$username="myusername"
$password= "123456"
$ie = New-Object -com InternetExplorer.Application
$ie.visible = $true;
$ie.navigate($url);
while ($ie.Busy)
{
Start-Sleep -m 10000;
}
$counter = 0
while (($counter -lt 10) -and ($ie.document -eq $null)) {Start-Sleep 1; $counter++}
$ie.document -eq $null
$ie.Document.getElementByID('email').value=$username
#$ie.Document.getElementByID("Password").value=$password
#$ie.Document.getElementById("signin").Click();
當我運行powershell腳本時,出現以下錯誤。
You cannot call a method on a null-valued expression.
At J:\scripts\gmail.ps1:21 char:1
+ $ie.Document.getElementByID('email').value=$username
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
奇怪的是,這是昨天和今天完全正常工作完全沒有工作。我正在使用IE9。
任何幫助非常感謝。
我剛剛測試了你的代碼,它在這裏工作。然而,在我的情況下,「密碼」字段被稱爲「Passwd」(也用gmail進行測試)。你檢查這些字段名是否是靜態的嗎? – Poorkenny 2013-03-06 10:20:26
你確定你給頁面足夠的時間來加載?你有一個計數器到10,睡1秒,你可能不得不增加或刪除計數器,使其無限期,直到$ ie.document不等於$ null – 2013-03-06 10:29:01
現在得到以下錯誤:方法調用失敗,因爲[系統.__ ComObject]不包含名爲'getElementByID'的方法。 在C:\ Users \ techjlw \ Documents \ Untitled1.ps1:18 char:28 + $ ie.Document.getElementByID <<<<('email')。value = $ username + CategoryInfo:InvalidOperation:(getElementByID:字符串)[],RuntimeException + FullyQualifiedErrorId:MethodNotFound – 2013-03-06 10:33:45