0

几天前我升级到 Windows 10,但我的脚本之一无法正常工作。这个简单的独立脚本演示了这个问题:

$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}

程序通过一个简单的屏幕导航到一个股票回测网站,点击“运行回测”按钮,这部分工作正常;我可以在可见的 IE 会话中查看进度。应该发生的是,然后单击“运行筛选器”按钮并显示 SP500 股票列表。

但是更新的(第一次点击后)网站信息显然不会回到脚本中。一两次我看到一个 RPC DISCONNECTED 类型错误,但我无法重现它。这是通常的错误信息:

HRESULT 异常:0x800A138A
在 C:\Users\MD\OneDrive\Documents\Mechanical Investing\GTR1\Daily Runs\Temp1.ps1:12 char:1
+ $screener = $ie.document.getElementsByName("提交") | 哪里对象 { ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : OperationStopped: (:) [], COMException
    + FullyQualifiedErrorId:System.Runtime.InteropServices.COMException

所以初始导航到网站,第一个按钮点击工作正常,但第二个没有。我是否以管理员身份运行都没有关系,它在命令提示符下不起作用。我有一个类似的脚本在 Windows 7 上运行了很长时间,没有任何问题。我确实在防火墙设置中将 PowerShell 添加为允许的应用程序,但这并没有帮助。

有任何想法吗?

4

1 回答 1

1

我有同样的错误,并添加一个键来修复它。它在下面的链接中讨论。

Powershell 网页自动化适用于 Internet,而不是 Intranet

于 2016-04-15T17:55:20.473 回答