无法找到" getElementById"和参数计数:" 1"

时间:2014-07-09 17:56:36

标签: internet-explorer powershell

我在一个简单的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

1 个答案:

答案 0 :(得分:2)

感谢SiZiIOUS的链接 - 最终导致我尝试测试空引用 - 似乎在从HTTP到HTTPS的重定向期间,至少某些部分COM对象是"丢失"

将内容重置为默认设置(包括Internet区域安全设置)后,我需要做的两件事就是无需以管理员身份运行PowerShell

  1. 禁用IE增强安全配置
  2. 将所需的网址添加到兼容性视图
  3. 另外值得注意的是 - 如果在此之后我将URL添加到可信站点,它实际上停止再次工作,我怀疑这使我在之前的某个时刻错过了解决方案,因为我尝试了这个组合它可能列在可信站点中的设置。为什么会这样,我不确定,但也许这会引发一个可以解释的人的想法。