PowerShell JavaScript按钮单击是否有任何强制命令?

时间:2010-12-06 16:45:41

标签: javascript internet-explorer powershell javascript-events

我想使用PowerShell创建自动化网络测试。 我的问题是,当我点击一个带有JavaScript弹出窗口的按钮时,脚本会挂在以下行,因为事件未完成。 弹出窗口已加载,但脚本挂起。

有没有强制命令?因为在接下来的行中我想使用Commandlet单击ok按钮。

$ie.Document.getElementById("ButtonID")|foreach{$_.Click()} #never finished

1 个答案:

答案 0 :(得分:1)

在浏览器中进行自动化测试有两种解决此常见问题的方法。您的第一个选择是使用您自己的模拟实现重新定义所有javascript函数。

window.alert = function(msg) { log_info(msg); };
window.prompt = function(msg) { return fixture(msg); };
window.confirm = function(msg) { return randomBool; };

在开始自动化之前修改这些功能(以及其他类似的打印等)将阻止提示阻止该过程。但您可能仍然需要担心安全警报和凭据对话框。

所以第二种方法是运行一个监控实用程序,它可以与操作系统级别的窗口进行交互。看看IEUnit - http://code.google.com/p/ieunit/它使用一个名为Desktoop的自定义activex控件(故意拼错),允许与Windows脚本宿主的窗口和安全警报进行交互。

因此,您可以在powershell中使用activex对象,或者按照此引用 - http://msdn.microsoft.com/en-us/magazine/cc163301.aspx获取有关使用本机PowerShell功能实现您自己的桌面类似模块的想法