我很难完成这项工作。这是我的问题。
我创建了一个脚本,有几个人应该使用它,它不适用于任何一个。就在我的机器上。
所以我认为它应该是一个库或者什么东西,并决定安装visual studio 2015,只是为了测试它是否有效。它确实做到了!
可悲的是,我不得不将其删除,因为我公司的视觉工作室数量有限,而且它停止了工作。
然后我决定尝试安装VS附带的几个程序,但没有成功。我从2005年到2015年安装了Visual c ++,。net 3.5,4.5,4.6和4.7,但仍然没有运气。
我失踪了什么?任何人都可以帮我解决这个问题吗?
我正在使用的部分代码:
$IE = New-Object -ComObject InternetExplorer.Application -ErrorAction 0
$URL = 'www.site.com'
$IE.Visible = $true
$IE.Navigate($URL)
$ShellWindows = (New-Object -ComObject Shell.Application).Windows()
$Tabs = $ShellWindows | Where-Object {$_.Name -eq "Internet Explorer"}
$web = $tabs.Document.IHTMLDocument3_getElementsByTagName('Span')
我得到的错误:
Method invocation failed because [System.__ComObject] doesn't contain a method named 'IHTMLDocument3_getElementsByTagName'.
At line:103 char:2
+ $web = $tabs.Document.IHTMLDocument3_getElementsByTagName('Span')
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (IHTMLDocument3_getElementsByTagName:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
答案 0 :(得分:2)
这将是获得跨度的另一种方式。 尽可能避免使用IHTMLDocuments。它们只是默认Com.Document的版本,它们按创建顺序编号。老实说,我不能想到使用其他用于罕见的向后兼容性,你甚至应该看看它们。使用默认文档将允许您编写用户所拥有的脚本而不是您认为的脚本。
$IE = New-Object -ComObject InternetExplorer.Application -ErrorAction 0
$URL = 'www.google.com'
$IE.Visible = $true
$IE.Navigate($URL)
while($IE.Document.readyState -ne "Complete"){
sleep -Milliseconds 100
}
$spans = $IE.Document.getElementsByTagName("span")
答案 1 :(得分:0)
为什么放了?
$ShellWindows = (New-Object -ComObject Shell.Application).Windows()
我昨天也做了相同的更改 浪费很多时间
直接服用
$IE.Document.getElementsByTagName("span")
检查可能会运行