PowerShell中执行Javascript的方法示例
背景与问题
别人写了一个Web应用程序,使用的是ASP.NETForms技术。其中用到了一个DropdownList控件,用户选择了某项后,页面会回传,然后在下面再动态的显示另外一个控件,逻辑很简单。
这是产生的的部分的html源码:
<selectname="eventTypeDropDown"id="eventTypeDropDown"onchange="javascript:setTimeout('__doPostBack(\'eventTypeDropDown\',\'\')',0)">
<optionvalue="Exception"selected="selected">Exception</option>
<optionvalue="Memory">Memory</option>
<optionvalue="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代码复制进控制台,运行了下,页面开始刷新,下面的动态控件加载出来了。此时看到了一缕曙光。也就是,如题:在IEComObject中执行Javascript可以解决这一问题。那怎么执行呢?
$ie.Document.parentWindow.execScript(javascript:setTimeout('__doPostBack(\'eventTypeDropDown\',\'\')',0)",'')热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短