数日前に Windows 10 にアップグレードしましたが、スクリプトの 1 つを動作させることができませんでした。この単純なスタンドアロン スクリプトは、問題を示しています。
$erroractionpreference = "Continue"
$ie = New-Object -ComObject InternetExplorer.Application
$ie.visible = $True
$url = "http://gtr1.backtest.org/2013/?sp500.a:et1"
$ie.Navigate($url)
while ($ie.busy) {Start-Sleep 1}
$backtest = $ie.document.getElementsByName("submit") |
Where-Object {$_.value -eq "Run Backtest"}
$backtest.click() #shows SP500 backtest results
while ($ie.busy) {Start-Sleep 1}
$screener = $ie.document.getElementsByName("submit") |
Where-Object {$_.value -eq "Run Screener"}
$screener.click() #shows list of SP500 stocks
while ($ie.busy) {Start-Sleep 1}
プログラムは単純な画面で株式のバックテスト Web サイトに移動し、[バックテストを実行] ボタンをクリックすると、この部分は正常に機能します。目に見える IE セッションで進行状況を確認できます。次に「スクリーナーの実行」ボタンをクリックすると、SP500 株のリストが表示されます。
しかし、(最初のクリック後に) 更新された Web サイト情報は、どうやらスクリプトには返されません。RPC DISCONNECTED タイプのエラーが 1 回か 2 回表示されましたが、再現できませんでした。これは通常のエラー メッセージです。
HRESULT からの例外: 0x800A138A C:\Users\MD\OneDrive\Documents\Mechanical Investing\GTR1\Daily Runs\Temp1.ps1:12 文字:1 + $screener = $ie.document.getElementsByName("提出") | Where-オブジェクト { ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) []、COMException + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
そのため、Web サイトへの最初のナビゲーションと最初のボタン クリックは正常に機能しますが、2 回目は機能しません。管理者として実行しているかどうかは問題ではなく、コマンド プロンプトでは機能しません。これと同様のスクリプトを Windows 7 で長時間実行しても問題はありませんでした。ファイアウォール設定で許可されたアプリとして PowerShell を追加しましたが、それは役に立ちませんでした。
何か案は?