自动化时调用 onkeyup 函数

Call onkeyup function while doing automation

我正在尝试使用 PowerShell 执行 IE 自动化。在使用 IE 对象自动执行一些手动任务时,我能够导航到网站并在文本框中输入值,但是网站上可用的提交按钮只能在该文本框中触发按键事件后才能触发。

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

有什么方法可以使用 PowerShell 脚本调用我客户页面的这个 doUpdate() 函数吗?

显然我无法在客户页面上进行编辑或更改。

注意: 我不想使用 SendKeys 之类的方法来模拟击键,因为它不够健壮,需要 IE window 才能打开和聚焦。

如果您已经将 event/handler 附加到元素 (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')