【问题标题】:Call onkeyup function while doing automation在进行自动化时调用 onkeyup 函数
【发布时间】:2015-06-07 10:29:07
【问题描述】:

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

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

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

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

注意:我不希望使用像 SendKeys 这样的方法来模拟击键,因为它不可靠并且需要打开 IE 窗口并获得焦点。

【问题讨论】:

    标签: internet-explorer powershell automation


    【解决方案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')
    

    【讨论】:

    • 谢谢!它完全符合我的要求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    相关资源
    最近更新 更多