【发布时间】:2018-06-18 14:42:22
【问题描述】:
这是我观察到的非常奇怪的行为。当网页中只有以下内容时,Invoke-WebRequest 将发出警报消息并暂停所有脚本,直到解除警报。
<script>
alert('testing');
</script>
我在网上找到了一个例子,所以你们都可以轻松复制。
Invoke-WebRequest 'http://activelab.io/code-snippets/show-alert-box-on-page-load'
这是最奇怪的一点。我已经尝试了很多来避免这种警报。 -UseBasicParsing 在我的情况下不是一个选项。因此,我尝试将对象分配给一个变量,并仅访问未提及警报的部分。例如:
$x = Invoke-WebRequest 'http://activelab.io/code-snippets/show-alert-box-on-page-load'
$x.Forms
但这仍然会生成警报消息!即使$null = $x.Forms 或类似的技巧也无法阻止它。
即使是陌生人,也只会返回一次。比如:
$x = Invoke-WebRequest 'http://activelab.io/code-snippets/show-alert-box-on-page-load'
$x.Forms
$x.Forms
$x.Forms
返回一条消息。只有当我重新调用请求时,我才会收到额外的错误。
我也尝试在作业中运行它,但这仍然会产生警报。作业会暂停,直到被解雇。
是否有人知道如何在不使用-UseBasicParsing 参数的情况下解决此问题?
【问题讨论】:
-
您能否详细说明为什么
-UseBasicParsing对您不可用? -
@oɔɯǝɹ
-UseBasicParsing不会填充$request.Forms,这意味着我必须实现 HTML/JS 解析来确定输入字段。 -
啊,所以你想遍历表单/字段?
-
@oɔɯǝɹ 没错,虽然我认为这与问题不太相关,真的。我觉得这应该是可以解决的,而不仅仅是为我的具体案例创建解决方法。
-
也许使用
-UseBasicParsing将 HTML 下载到本地文件并解析使用 DOM 是一种选择? social.technet.microsoft.com/wiki/contents/articles/…
标签: powershell