【问题标题】:Automating JavaScript confirmation prompt in IE using PowerShell使用 PowerShell 在 IE 中自动化 JavaScript 确认提示
【发布时间】:2013-07-15 04:48:21
【问题描述】:

我在 HTML 页面中有以下 JavaScript 代码:

<script language="javascript" type="text/javascript">
    function confirmAutoTransitionSelection() {
        var autoTransition = 'OFF';
        if (document.getElementById('autoTransitionON').checked) {
            autoTransition = 'ON';
        }
        return confirm('Are you sure you want to turn ' + autoTransition + ' the Auto Transition Setting?');
        }
</script>

同样在 HTML 代码中,我有以下输入按钮,我可以使用 PowerShell 脚本自动单击:

<form method="post">
Auto Transition
<input type="radio" id="autoTransitionON" name="autoTransition" checked value="true" /> ON
<input type="radio" name="autoTransition" value="false" /> OFF
<input class="submitBtn" type="submit" name="autoTransitionBtn" onclick="javascript:return confirmAutoTransitionSelection();" value="[Update]"/>
</form>

这是我的 PowerShell 脚本:

$ie = new-object -com "InternetExplorer.Application"
$ie.Navigate("http://localhost/test/")
While ($ie.Busy) {Sleep 2}
$doc = $ie.Document
$autobutton = $doc.getElementById("autoTransitionON").Click()
$btn = $doc.getElementsByTagName("input")
$autotransbtn = $btn | ? {$_.Name -eq "autoTransitionBtn"}
$autotransbtn.Click()
$ie.Quit()

我在使用 PowerShell 脚本自动单击输入按钮时没有任何问题,但 JavaScript 会抛出一个确认信息,必须单击该确认信息才能确认更改。这是我遇到问题的地方。如何自动点击 JavaScript 确认?

提前致谢!

【问题讨论】:

  • JavaScript 确认对话框不会出现在 HTML 对象模型中,因此您需要在此处使用不同的机制,例如向对话框发送击键。
  • 以前从未这样做过(向对话框发送击键)。这可能是您所指的吗? stackoverflow.com/questions/16017094/…
  • @Keith 是的,就是这样。我推荐您提供的链接底部提到的 WASP 模块。
  • 谢谢!我最终使用了 WASP 模块,它运行良好。

标签: internet-explorer powershell automation


【解决方案1】:

我也遇到了类似的问题,基本是查询item的outerHTML属性来获取HTML代码。然后您所要做的就是将"confirm (*)" 替换为""。之后,您可以将其设置回脚本中,然后单击它。

$Script = $IE.document.getElementsByTagName("script").item(#----------Whatever Number it is)
$Script.outerHTML = $Script.outerHTML | % {if ($_ -like "return confirm*") {"return true;"} else {$_}}
$autotransbtn.Click()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 2010-10-10
    • 2011-06-12
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    相关资源
    最近更新 更多