PowerShell中執(zhí)行Javascript的方法示例
背景與問題
別人寫了一個(gè)Web應(yīng)用程序,使用的是ASP.NET Forms技術(shù)。其中用到了一個(gè)DropdownList控件,用戶選擇了某項(xiàng)后,頁(yè)面會(huì)回傳,然后在下面再動(dòng)態(tài)的顯示另外一個(gè)控件,邏輯很簡(jiǎn)單。
這是產(chǎn)生的的部分的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>
還是蠻幸運(yùn)的,這個(gè)控件有id。我寫的PowerShell腳本如下:
$ie = new-object -com "InternetExplorer.Application"
$eventType = $ie.Document.getElementById('eventTypeDropDown')
$eventType.selectedIndex=1
腳本運(yùn)行后,頁(yè)面上的下來(lái)列表選中了Memory,但是因?yàn)轫?yè)面沒有回傳,下面的動(dòng)態(tài)控件沒有顯示出來(lái)。
糾結(jié)了我一下午。這個(gè)時(shí)候請(qǐng)不要告訴我,我可以使用其它測(cè)試框架,測(cè)試工具。在這里,不想引入其它高大上的東西,只想使用IE本身去解決這個(gè)問題。
解決方案
我下意識(shí)的打開F12開發(fā)調(diào)試工具,把onchange事件的javascript代碼復(fù)制進(jìn)控制臺(tái),運(yùn)行了下,頁(yè)面開始刷新,下面的動(dòng)態(tài)控件加載出來(lái)了。此時(shí)看到了一縷曙光。也就是,如題:在IE ComObject中執(zhí)行Javascript可以解決這一問題。那怎么執(zhí)行呢?
$ie.Document.parentWindow.execScript(javascript:setTimeout('__doPostBack(\'eventTypeDropDown\',\'\')', 0)",'')
相關(guān)文章
Powershell小技巧之使用-F方法帶入數(shù)據(jù)
這篇文章主要介紹了Powershell的一個(gè)使用-F方法帶入數(shù)據(jù)的小技巧,非常的簡(jiǎn)單,也很易懂,記錄一下分享給大家2014-09-09PowerShell中使用Out-File把字符串或運(yùn)行結(jié)果保存到文件的方法
這篇文章主要介紹了PowerShell中使用Out-File把字符串或運(yùn)行結(jié)果保存到文件的方法,重點(diǎn)在于Out-File命令的使用方法上,需要的朋友可以參考下2014-08-08原創(chuàng)powershell腳本小工具ctracert.ps1跟蹤路由(win8以上系統(tǒng))
這篇文章主要介紹了原創(chuàng)powershell腳本小工具ctracert.ps1跟蹤路由(win8以上系統(tǒng)),需要的朋友可以參考下2017-10-10Powershell中創(chuàng)建自定義對(duì)象例子
這篇文章主要介紹了Powershell中創(chuàng)建自定義對(duì)象例子,本文內(nèi)容需要在3.0版本以上有效,需要的朋友可以參考下2014-11-11Powershell中可以使用的.Net實(shí)用靜態(tài)方法
這篇文章主要介紹了Powershell中可以使用的.Net實(shí)用靜態(tài)方法,本文直接給出使用示例,并羅列了常用的靜態(tài)方法,需要的朋友可以參考下2015-03-03