使用 Powershell 的 IE 自动化发送 ENTER 键
IE Automation with Powershell send ENTER Key
我正在使用 ServiceNow 执行 IE 自动化,其中有一个选项可以填充搜索数据,但没有可用于使用 CLICK 方法的搜索按钮。因此,我正在寻找在填充搜索数据后输入 {ENTER} 或 {~} 之类的键的方法。但我正处于 PowerShell 脚本的中间阶段,不确定如何使用它。
如果有人能帮助我提供方法,将不胜感激。
$IE = New-Object -ComObject InternetExplorer.application
$IE.FullScreen = $false
$IE.Visible = $true
$IE.Navigate($ServiceNowURL)
While ($IE.Busy -eq $true)
{
Start-Sleep -Milliseconds 50
}
$Enter = Read-Host 'To continue press ENTER'
#Enter
$Search = $IE.Document.IHTMLDocument3_getElementsByTagName('input') | ? {$_.id -eq 'sysparm_search'}
$EnterValue = $Search.value() = $TicketNumber
首先,您需要激活 IE window 并使用 AppActivate
将其置于最前面,然后使用 focus()
将焦点设置到搜索区域。之后,您可以使用 SendKeys
.
发送 Enter 键
我以https://www.google.com搜索为例,你可以参考我下面的代码示例。我测试了一下,效果很好:
[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
[void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
$ie = New-Object -ComObject 'InternetExplorer.Application'
$ie.Visible=$true
$ie.Navigate("https://www.google.com") #change it to your own url
while($ie.ReadyState -ne 4 -or $ie.Busy) {Start-Sleep -m 100}
$search=$ie.Document.getElementsByName("q")[0] #change it to your own selector
$search.value="PowerShell" #change it to your own search value
Sleep 5
$ieProc = Get-Process | ? { $_.MainWindowHandle -eq $ie.HWND }
[Microsoft.VisualBasic.Interaction]::AppActivate($ieProc.Id)
$search.focus()
[System.Windows.Forms.SendKeys]::Sendwait("{ENTER}");
我正在使用 ServiceNow 执行 IE 自动化,其中有一个选项可以填充搜索数据,但没有可用于使用 CLICK 方法的搜索按钮。因此,我正在寻找在填充搜索数据后输入 {ENTER} 或 {~} 之类的键的方法。但我正处于 PowerShell 脚本的中间阶段,不确定如何使用它。
如果有人能帮助我提供方法,将不胜感激。
$IE = New-Object -ComObject InternetExplorer.application
$IE.FullScreen = $false
$IE.Visible = $true
$IE.Navigate($ServiceNowURL)
While ($IE.Busy -eq $true)
{
Start-Sleep -Milliseconds 50
}
$Enter = Read-Host 'To continue press ENTER'
#Enter
$Search = $IE.Document.IHTMLDocument3_getElementsByTagName('input') | ? {$_.id -eq 'sysparm_search'}
$EnterValue = $Search.value() = $TicketNumber
首先,您需要激活 IE window 并使用 AppActivate
将其置于最前面,然后使用 focus()
将焦点设置到搜索区域。之后,您可以使用 SendKeys
.
我以https://www.google.com搜索为例,你可以参考我下面的代码示例。我测试了一下,效果很好:
[void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms")
[void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
$ie = New-Object -ComObject 'InternetExplorer.Application'
$ie.Visible=$true
$ie.Navigate("https://www.google.com") #change it to your own url
while($ie.ReadyState -ne 4 -or $ie.Busy) {Start-Sleep -m 100}
$search=$ie.Document.getElementsByName("q")[0] #change it to your own selector
$search.value="PowerShell" #change it to your own search value
Sleep 5
$ieProc = Get-Process | ? { $_.MainWindowHandle -eq $ie.HWND }
[Microsoft.VisualBasic.Interaction]::AppActivate($ieProc.Id)
$search.focus()
[System.Windows.Forms.SendKeys]::Sendwait("{ENTER}");