1

我一直在使用此处找到的 Internet Explorer 自动化脚本: http ://www.pvle.be/2009/06/web-ui-automationtest-using-powershell/

这让我可以使用如下命令(函数)轻松发布表单数据:

NavigateTo "http://www.websiteURI/"
SetElementValueByName "q" "powershell variable scope"
SetElementValueByName "num" "30"
SetElementValueByName "lr" "lang_en"
ClickElementById "sb_form_go"

以上将让我将值发布到元素并单击以提交表单。

我想使用辅助函数对 Powershell 的 Web 客户端做同样的事情。我还没有找到这样的脚本。我能找到的最接近的是 The Scripting Guys, Send-WebRequest

http://gallery.technet.microsoft.com/scriptcenter/7e7b6bf2-d067-48c3-96b3-b38f26a1d143

我什至不确定它是否符合我的预期(因为没有工作示例显示如何做我想做的事)。

无论如何,我真的很感谢一些帮助,让我开始做与我在那里展示的工作示例(尽可能简单)等效的工作。一个好处是还能够获取 URI 的元素名称列表,以便知道我要提交哪些表单元素。

PS:我还需要能够指定用户代理和凭据;因此,包含这些的示例将是理想的。

4

1 回答 1

1

你看过 Invoke-WebRequest 命令吗?(需要 powershell 3.0 或更高版本)我相信以下内容适用于提交数据

#POSTing data
Invoke-WebRequest http://www.websiteURI/ `
    -UserAgent 'My User Agent' `
    -Credential $cred `
    -Method Post `
    -Body @{
        q = 'powershell variable scope'
        num = 30
        lr = 'lang_en'
    }

作为奖励,Invoke-WebRequest 的结果包含页面上 InputFields 的集合,您可以使用它来获取要设置的表单元素列表。

#List input elements
Invoke-WebRequest http://www.websiteURI/ | select -ExpandProperty InputFields
于 2013-11-09T16:15:22.270 回答