2

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を使用しています。

どんな助けでも大歓迎です。

4

2 に答える 2

4

Webページに移動した後、PowerShell IE9 ComObjectにはすべてnullプロパティがあり、これに対する答えが得られました。オブジェクトの作成を停止していた IE 保護モードのため、スクリプトを管理者として実行する必要がありました。IE 保護モードをオフにするか、スクリプトを管理者として実行して機能させます。

于 2013-03-06T11:07:45.233 に答える
0

ここで間違いを犯したと思います:

$ie.Document.getElementByID("Password").value=$password 

ID は password ではなく passwd にする必要があります。したがって、その行を次のように置き換えます。

$ie.Document.getElementByID("Passwd").value=$password 

私のために働きます。

于 2013-03-06T10:13:04.707 に答える