我在一个简单的PowerShell脚本中收到此错误。 "的getElementById"总是需要1个参数,所以我不确定为什么会失败。我正在使用在WS2K8 r2上运行的IE 11和PowerShell 3。
$ie = New-Object -com InternetExplorer.Application
$ie.visible=$true
$ie.navigate("http://duckduckgo.com")
while($ie.ReadyState -ne 4) {start-sleep -m 100}
$ie.document.getElementById("search_form_input_homepage").value = "foobar"
$ie.document.getElementById("search_button_homepage").Click()
生成错误消息:
无法找到" getElementById"和参数计数: " 1&#34 ;.在C:\ SCRIPTS \ sample.ps1:5 char:1 + $ ie.document.getElementById(" search_form_input_homepage")。value =" foobar" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [],MethodException + FullyQualifiedErrorId:MethodCountCouldNotFindBest
答案 0 :(得分:2)
感谢SiZiIOUS的链接 - 最终导致我尝试测试空引用 - 似乎在从HTTP到HTTPS的重定向期间,至少某些部分COM对象是"丢失"
将内容重置为默认设置(包括Internet区域安全设置)后,我需要做的两件事就是无需以管理员身份运行PowerShell
另外值得注意的是 - 如果在此之后我将URL添加到可信站点,它实际上停止再次工作,我怀疑这使我在之前的某个时刻错过了解决方案,因为我尝试了这个组合它可能列在可信站点中的设置。为什么会这样,我不确定,但也许这会引发一个可以解释的人的想法。