0

数日前に 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 を追加しましたが、それは役に立ちませんでした。

何か案は?

4

1 に答える 1

1

同じエラーが発生し、regedit にキーを追加すると修正されました。ここでは、以下のリンクで説明しています。

Powershell Web ページ自動化は、イントラネットではなくインターネット上で機能します

于 2016-04-15T17:55:20.473 に答える