【发布时间】:2015-04-08 17:18:52
【问题描述】:
我在 Powershell 中使用 IE11 的 COM 对象对网站进行身份验证并下拉订单列表。到目前为止,我的脚本已成功发送用户名和密码以及进入订单页面,我什至可以“单击”下载所需文件的链接。问题是,不是像我需要的那样保存文件,而是打开/保存对话框出现并且脚本炸弹。
我尝试让 IE11 自动通过editing the registry and specifying the Excel.CSV type 保存文件,但这不起作用。下载链接实际上是一个按钮,它调用一个复杂的 Javascript 函数,并且在我需要的 CSV 文件的最终结果中,但我试图破译发出 POST 请求的 JS,并在 IE COM 对象上使用 Navigate() 方法无济于事。
我意识到这不是自动化 Web 流程的最佳方式,但我不知道如何解决页面上的所有 Javascript 以使用像 Invoke-WebRequest 这样的 cmdlet。当一切都是 Javascript 时,仅使用 HTTP GET 和 POST 有点困难!
非常感谢任何帮助。这是一个代码示例。
Function Get-PageElement ($Name,$TagName,$Id) {
if ($Name) {
$InternetExplorer.Document.getElementsByName($Name)
} elseif ($TagName) {
$InternetExplorer.Document.getElementsByTagName($TagName)
} elseif ($Id) {
$InternetExplorer.Document.getElementById($Id)
}
}
$script:InternetExplorer = New-Object -com "InternetExplorer.Application"
$script:InternetExplorer.visible = $true
$InternetExplorer.Navigate($Url)
$DownloadButton = Get-PageElement -Id btnExport
$DownloadButton.Click()
【问题讨论】:
-
你能发布一个你正在使用的代码示例吗?
标签: internet-explorer powershell com