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入門教程之創(chuàng)建和使用配置文件實例
這篇文章主要介紹了PowerShell入門教程之創(chuàng)建和使用配置文件實例,PowerShell的配置文件都是些普通的PowerShell腳本文件,需要的朋友可以參考下2014-10-10
探索PowerShell (二) PowerShell的基本操作
這里介紹下如何打開powershell控制臺,在 程序>附件>windows powershell中即可,主要是界面不再是dos窗口,據(jù)說功能也增加了很多2012-12-12
PowerShell包含另一個腳本文件和獲取當(dāng)前腳本所在目錄的方法例子
這篇文章主要介紹了PowerShell包含另一個腳本文件和獲取當(dāng)前腳本所在目錄的方法例子,需要的朋友可以參考下2014-08-08
PowerShell中獲取Windows系統(tǒng)序列號的腳本分享
這篇文章主要介紹了PowerShell中獲取Windows系統(tǒng)序列號的腳本分享,本文方法是讀取注冊表中的信息,然后處理成序列號輸出,需要的朋友可以參考下2014-11-11

