时间:2021-05-22
背景与问题
别人写了一个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)",'')
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
这里演示如何利用PowerShell将一段Javascript函数字符串交给Jint引擎去执行。执行Javascript函数.Net版的Javascript解释
以前在cmd中执行powershell,我们都是这样:复制代码代码如下:PowerShell.exe-filea.ps1现在想在cmd中这样执行:复制代码代码如
支持所有PS版本。你可能需要在后台执行Powershell,例如复制文件,但是你又不想它影响你的CPU执行其它任务。有一种方法就是降低Powershell执行的
前言在PowerShell中可以轻松的执行后台任务并且让多个后台任务并行执行。本文介绍PowerShell中Job相关的一些命令,并通过demo演示如何在后台同
启动PowerShell时隐藏自己的窗口假如我在计划任务中定时通过Powershell.exe来执行一个脚本文件,我想隐藏这个窗口,此时我们可以考虑使用Powe