【发布时间】:2018-06-17 22:47:40
【问题描述】:
我的脚本中有这个非常简单的 sn-p:
$ie = New-Object -ComObject InternetExplorer.Application
$ie.visible = $true
$ie.navigate("https://10.0.0.1/ccmadmin/phoneFindList.do")
while ($ie.readyState -ne 4) { Start-Sleep -Milliseconds 100; Write-Host $ie.readyState }
我之前确实使用过非常相似的代码,没有任何问题,但是由于某种原因,当我运行此脚本时,$ie.readyState 只包含一个空白值,因此将一个空字符串打印到控制台,并且它永远不会设置为4(或其他任何事情。
我可以看到该页面有一个证书错误,但我很确定这应该仍然有效。
什么可能导致这个问题?
当单步执行脚本时,我可以看到 readyState 一直到第 3 行包含一个值 0,我们在这里调用 navigate - 此时 readyState 设置为空字符串或空白...
【问题讨论】:
-
为什么你很确定它应该还能工作?
-
@Bill_Stewart 根据我看到的代码示例,在规避证书问题之前与上面的代码相同(通过将
click发送到继续页面链接),而且事实上这是昨天工作(至少脚本已经过了那个阶段)。 -
我刚刚测试了您的帖子,指向了我的一个网站并获得了预期的输出。 1 1 1 1 1 3 4 ...我还访问了其他几个公共站点,每次都到达 4 个。
-
@postanote 我以前可能多次使用过此代码,所以我知道它确实有效。我的问题更多是关于为什么它在我的情况下可能不起作用,或者我必须尝试哪些选项来尝试调试这个烦人的问题?
-
您的似乎是环境问题与 PoSH 问题。因为当我在您的站点上运行您的块时,我得到 1 4。至于故障排除,我会启动 fiddler 并查看您的站点作为响应或在另一台机器上尝试的内容。我还会测量它以检查响应时间,甚至设置一个调试器以附加到 IE 进程并查看吐出的内容。
标签: powershell internet-explorer automation