PowerShellを使用してWebサイトにログインしようとしています。以下の例では、live.comにログインしようとしています。PowerShellのIEオートメーションを使用して入力の検証を行っているWebサイトにログインする
私はユーザー名フィールドを更新できますが、Webページは自分の値を受け入れない入力検証を実行します。私が手動で入力してスペースを叩くようにユーザー名フィールドを編集してから、バックスペースを入力すると、その入力は有効です。
フォーカスを変更したり、fireeventを使用したりすることについてのドキュメントがありますが、どちらも動作していないようです。
sendkeysは私の問題を解決しますが、以前はsendkeysに数多くの問題がありましたが、実際にはそのパスを避けたいと思っています。
$Site = 'https://login.live.com'
$UserName = '[email protected]'
$ie = New-Object -ComObject 'internetExplorer.Application'
$ie.Visible= $true
$ie.Navigate($Site)
while ($IE.busy)
{
Start-Sleep -Milliseconds 100
}
$Inputs = $IE.document.getElementsByTagName("input")
foreach ($Input in $Inputs)
{
if ($Input.type -eq "email")
{
$UserIDField = $Input
}
if ($Input.type -eq "submit")
{
$LoginButton = $Input
}
}
$UserIDField.focus()
$UserIDField.value = $UserName
$UserIDField.FireEvent('onchange')
$LoginButton.focus()
$LoginButton.click()
優れたユーザー認証システムは、自動ログインを防止するように設計されています。ユーザーはログインプロンプトで「ログインしたままにする」オプションを選択して、サイト訪問の間認証を維持することができます。自動化の必要はありません。 –