2015-06-07 41 views
1

我想使用PowerShell執行IE自動化。在使用IE對象自動執行某些手動任務時,我可以導航到網站並在文本框中輸入值,但只有在該文本框中觸發鍵盤事件後才能觸發網站上的提交按鈕。做自動化時調用onkeyup函數

<input id="txtFormID" class="TableTextAlt" type="text" onkeyup="doUpdate();" 
    maxlength="10" name="txtFormID"></input> 

有沒有什麼方法來調用使用PowerShell腳本我的客戶的頁面的這個doUpdate()功能?

很顯然,我無法在客戶頁面上編輯或做任何更改。

注意:我不希望使用像SendKeys這樣的方法模擬擊鍵,因爲它不健壯,需要打開IE窗口並集中注意力。

回答

1

如果你已經有連接到一個元素(onkeyup="doUpdate()")的事件/處理程序可以使用的元素有關的fireEvent方法以編程方式觸發它:

$url = 'http://...' 

$ie = New-Object -COM 'InternetExplorer.Application' 
$ie.Navigate($url) 
do { Start-Sleep -Milliseconds 100 } until ($ie.ReadyState -eq 4) 
$ie.Visible = $true 

$el = $ie.Document.getElementById('txtFormID') 

$el.FireEvent('onKeyUp') 
+0

謝謝!它的確如我所期待的那樣。 – Aditya