PowerShell中执行Javascript的方法示例
2014-07-02 09:17
2061 查看
背景与问题
别人写了一个Web应用程序,使用的是ASP.NET Forms技术。其中用到了一个DropdownList控件,用户选择了某项后,页面会回传,然后在下面再动态的显示另外一个控件,逻辑很简单。
这是产生的的部分的html源码:
<select name="eventTypeDropDown" id="eventTypeDropDown" onchange="javascript:setTimeout('__doPostBack(\'eventTypeDropDown\',\'\')', 0)">
<option value="Exception" selected="selected" >Exception</option>
<option value="Memory">Memory</option>
<option value="Perf">Perf</option>
</select>
还是蛮幸运的,这个控件有id。我写的PowerShell脚本如下:
$ie = new-object -com "InternetExplorer.Application"
$eventType = $ie.Document.getElementById('eventTypeDropDown')
$eventType.selectedIndex=1
脚本运行后,页面上的下来列表选中了Memory,但是因为页面没有回传,下面的动态控件没有显示出来。
纠结了我一下午。这个时候请不要告诉我,我可以使用其它测试框架,测试工具。在这里,不想引入其它高大上的东西,只想使用IE本身去解决这个问题。
解决方案
我下意识的打开F12开发调试工具,把onchange事件的javascript代码复制进控制台,运行了下,页面开始刷新,下面的动态控件加载出来了。此时看到了一缕曙光。也就是,如题:在IE ComObject中执行Javascript可以解决这一问题。那怎么执行呢?
$ie.Document.parentWindow.execScript(javascript:setTimeout('__doPostBack(\'eventTypeDropDown\',\'\')', 0)",'')
您可能感兴趣的文章:
相关文章推荐
- 在javascript中执行任意html代码的方法示例解读
- javascript实现根据函数名称字符串动态执行函数的方法示例
- JavaScript 通过 attachEvent 和 detachEvent 方法处理带参数的函数(示例代码)
- Javascript中eval函数的使用方法与示例
- Javascript延迟执行实现方法(setTimeout)
- JavaScript split()使用方法与示例
- JavaScript中继承的一些示例方法与属性参考
- javascript公有成员定义、私有成员定义、特权方法定义的简单示例
- 在flex中执行一个javascript方法的简单方式
- 在flex中执行一个javascript方法的简单方式
- JQuery动态执行javascript代码的方法
- Javascript中eval函数的使用方法与示例
- Javascript数组常用方法[包含MS AJAX.NET的prototype扩展方法]示例
- Javascript数组常用方法[包含MS AJAX.NET的prototype扩展方法]示例
- 让eval()全局作用域执行的方法深入研究(javascript)
- 用JavaScript事件串连执行多个处理过程的方法
- 用ASP将JAVASCRIPT代码写入客户端执行的一种简易方法
- [ASP.NET] 自定义控件的 onkeypress 在 javascript 函数返回false 依旧继续执行的解决方法(教训)
- 在powershell中执行wpf脚本的方法