【发布时间】: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