PowerShell中執(zhí)行Javascript的方法示例
背景與問題
別人寫了一個Web應(yīng)用程序,使用的是ASP.NET Forms技術(shù)。其中用到了一個DropdownList控件,用戶選擇了某項后,頁面會回傳,然后在下面再動態(tài)的顯示另外一個控件,邏輯很簡單。
這是產(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)的,這個控件有id。我寫的PowerShell腳本如下:
$ie = new-object -com "InternetExplorer.Application"
$eventType = $ie.Document.getElementById('eventTypeDropDown')
$eventType.selectedIndex=1
腳本運(yùn)行后,頁面上的下來列表選中了Memory,但是因為頁面沒有回傳,下面的動態(tài)控件沒有顯示出來。
糾結(jié)了我一下午。這個時候請不要告訴我,我可以使用其它測試框架,測試工具。在這里,不想引入其它高大上的東西,只想使用IE本身去解決這個問題。
解決方案
我下意識的打開F12開發(fā)調(diào)試工具,把onchange事件的javascript代碼復(fù)制進(jìn)控制臺,運(yùn)行了下,頁面開始刷新,下面的動態(tài)控件加載出來了。此時看到了一縷曙光。也就是,如題:在IE ComObject中執(zhí)行Javascript可以解決這一問題。那怎么執(zhí)行呢?
$ie.Document.parentWindow.execScript(javascript:setTimeout('__doPostBack(\'eventTypeDropDown\',\'\')', 0)",'')
相關(guān)文章
Powershell小技巧之使用-F方法帶入數(shù)據(jù)
這篇文章主要介紹了Powershell的一個使用-F方法帶入數(shù)據(jù)的小技巧,非常的簡單,也很易懂,記錄一下分享給大家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中可以使用的.Net實用靜態(tài)方法
這篇文章主要介紹了Powershell中可以使用的.Net實用靜態(tài)方法,本文直接給出使用示例,并羅列了常用的靜態(tài)方法,需要的朋友可以參考下2015-03-03