ユーザーが Web サイトから抽出したファイルをダウンロードするプロセスを自動化しようとしています。私の問題は、「エクスポート」ボタンをクリックすると、クリックする必要がある最後の「ダウンロード」ボタンとともに、抽出のさまざまな日付パラメーターが JavaScript ポップアップ ウィンドウに表示されることです。この JavaScript ポップアップ ウィンドウで問題が発生します。エクスポート ボタンをクリックしてポップアップ ウィンドウが開くと、スクリプト中に PowerShell がフリーズしたように見え、それ以上のコマンドを実行できなくなります。
正しい IE プロセス ウィンドウを取得するために、WASP モジュールを SELECT-WINDOW と共に使用してみましたが、'Select-Window -Title "NAME OF POPUP WINDOW - Windows Internet Explorer" | -最初の 1 | を選択します。最初の「エクスポート」ボタンがクリックされた直後 (ポップアップ ウィンドウが開いた直後) に Powershell が「スクリプトの実行中」にスタックするため、Set-WindowActive コマンドは実行されません。さらにコマンドを実行するためにポップアップ ボックスを開いた後に Powershell を「更新」する方法、またはこの Javascrip ポップアップで行き詰まる連続的な「実行中のスクリプト」ループから抜け出す方法に関するアイデアはありますか窓?
# Set access URL and Credentials
$WebU='username'
$WebP='password'
$URLlogin='http://websiteurl.com'
$IEwait="1000"
# Execute IE and navigate to URL
$ie = New-Object -com "InternetExplorer.application";
$ie.visible = $True;
$ie.navigate($URLlogin);
Try{
# Login steps
while ($ie.Busy ) { Start-Sleep -Milliseconds $IEwait; }
if ($ie.Document.getElementByID("txtLogin"))
{ $ie.Document.getElementByID("txtLogin").value = $WebU }
while ($ie.Busy ) { Start-Sleep -Milliseconds $IEwait; }
if ($ie.Document.getElementByID("txtPassword"))
{ $ie.Document.getElementByID("txtPassword").value = $WebP }
while ($ie.Busy ) { Start-Sleep -Milliseconds $IEwait; }
if ($ie.Document.getElementByID("btnLogin"))
{ $ie.Document.getElementByID("btnLogin").Click() }
# Navigate through website to find the 'Export' button
while ($ie.Busy ) { Start-Sleep -Milliseconds $IEwait; }
if ($ie.Document.getElementByID("managementMenu_btnLearningResults"))
{ $ie.Document.getElementByID("managementMenu_btnLearningResults").Click() }
while ($ie.Busy ) { Start-Sleep -Milliseconds $IEwait; }
# This is the part that freezes the script. Once the 'btnExport' button is clicked, a JS popup keeps Powershell from executing any additional commands
if ($ie.Document.getElementByID("btnExport"))
{ $ie.Document.getElementByID("btnExport").Click() }
# Once the popoup box opens, sending the 'ENTER' key should automatically download the export file
Select-Window -Title "NAME OF POPUP WINDOW - Windows Internet Explorer" | Select -First 1 | Set-WindowActive
Select-Window -Title "NAME OF POPUP WINDOW - Windows Internet Explorer" | Select-childwindow | Send-Keys "{ENTER}"
}
# These won't execute because the JS popup window confuses Powershell and keeps it in a continuous 'Running Script' process
Catch {
"Error" }
Finally {
"Now able to execute further commands" }