我几天前升级到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类型错误但我无法重现它。这是通常的错误消息:
Exception from HRESULT: 0x800A138A At C:\Users\MD\OneDrive\Documents\Mechanical Investing\GTR1\Daily Runs\Temp1.ps1:12 char:1 + $screener = $ie.document.getElementsByName("submit") | Where-Object { ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [], COMException + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
所以初次导航到网站,第一个按钮点击工作正常,但第二个按钮没有。我是否以管理员身份运行并不重要,它在命令提示符下也不起作用。我有一个类似的脚本,在Windows 7上运行了很长时间,没有任何问题。我确实在防火墙设置中添加了PowerShell作为允许的应用程序,但这并没有帮助。
有什么想法吗?
答案 0 :(得分:-1)
我遇到了同样的错误,并在regedit中添加了一个密钥来修复它。这将在下面的链接中讨论。
Powershell Web Page Automation works on Internet, not Intranet