User interface 无COM对象的PowerShell Web UI自动化

User interface 无COM对象的PowerShell Web UI自动化,user-interface,powershell,automation,webbrowser-control,User Interface,Powershell,Automation,Webbrowser Control,我正在尝试使用PowerShell(使用getElementById/TagName)自动化一个简单的web表单登录,并从页面上的元素捕获输出和值 我知道有人使用InternetExplorer.ApplicationCOM对象,但我知道.net附带System.Windows.Forms.WebBrowser对象 我的问题是-是否可以通过将WebBrowser对象加载到内存中,让它导航到我的URL,然后在导航完成后运行我的逻辑,来实现仅使用.net对象的UI自动化?在开始进行任何处理之前,是否

我正在尝试使用PowerShell(使用
getElementById/TagName
)自动化一个简单的web表单登录,并从页面上的元素捕获输出和值

我知道有人使用
InternetExplorer.Application
COM对象,但我知道.net附带
System.Windows.Forms.WebBrowser
对象

我的问题是-是否可以通过将WebBrowser对象加载到内存中,让它导航到我的URL,然后在导航完成后运行我的逻辑,来实现仅使用.net对象的UI自动化?在开始进行任何处理之前,是否需要将此对象添加到Windows窗体中

以下是我想做的:

[void][reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
$browser = New-Object System.Windows.Forms.WebBrowser
$browser.Navigate("http://somesite.net/loginPage")
do {
    Start-Sleep -Seconds 1
}until($browser.ReadyState -eq 'complete')
$txtUsername = $browser.Document.getElementsByTagName('txtuser')
$txtPassword = $browser.Document.getElementsByTagName('txtpass')
# Perform more stuff here

我不知道你的问题的答案,但我想知道你是否看过?是的,我确实看过。。。出于许多原因,使用COM对象、解析文档并以这种方式实现自动化更容易。我可以使用COM对象,但我很好奇是否可以对.net对象执行相同的操作。这是可能的,但您需要为
WebBrowser
组织一个消息循环。例如,(在c中):