【问题标题】:Windows 10 powershell IE 11 objectWindows 10 powershell IE 11 对象
【发布时间】:2018-08-14 20:57:17
【问题描述】:

这里是批处理代码:

<# :
  @echo off
    powershell /nop /ex bypass^
    "&{[ScriptBlock]::Create((gc '%~f0') -join [Char]10).Invoke()}"
  exit /b
#>
$ie = new-object -comobject InternetExplorer.Application
$ie.Visible = $false
$ie.Silent = $true
while($ie.Busy -ne $false) {start-sleep -m 100} 
$ie.Navigate2("https://www.google.ru/", 4)
while($ie.Busy -ne $false) {start-sleep -m 100} 
while($ie.ReadyState -ne 4) {start-sleep -m 100}
start-sleep -m 500
$ie.Stop()
echo $ie.Document.body.innerHTML > ".\html.txt"
$ie.Quit()

此代码在 Windows 7 x64、Windows 8 x64 中运行良好,但在 Windows 10 x64 中无法运行。 Microsoft EDGE 浏览器未使用,IE 11 被选为默认浏览器。我试图以管理员和调用者的身份运行 bat-file .. 有什么问题?感谢您的帮助!

【问题讨论】:

  • 脚本到底应该做什么?会发生什么,应该发生什么?
  • 如果您只想收集网页的 HTML,那么桌面网络浏览器远非最佳方法。
  • 当我使用此代码运行 bat 文件时,它会使用页面的 html 代码创建名为“html.txt”的新文件。获得相同结果的其他方法对我来说并不有趣。一个问题 - 为什么这段代码在 Win 10 中不起作用?我应该检查/修复什么以获得所需的结果?
  • 问题是本地化的——我买了两台新电脑,预装了office 365,卸载office后出现这个bug。第二台计算机可以正常使用此代码。似乎office卸载程序损坏了IE。有任何想法吗?可能我应该重新安装IE?我怎样才能做到这一点?我不需要 Office 365。

标签: powershell windows-10 internet-explorer-11


【解决方案1】:

如果您只需要检索网页的 HTML 内容,则根本不要使用网络浏览器。相反,请使用 invoke-webrequest 并访问结果对象的 content 属性。

invoke-webrequest -Uri http://www.google.ru/ | select-object -property content

【讨论】:

    猜你喜欢
    • 2017-12-08
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 2014-06-07
    • 2015-02-08
    • 2016-01-07
    相关资源
    最近更新 更多