我一直在使用这里找到的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:我还需要能够指定用户代理和凭证;因此,包含这些的例子将是理想的。
答案 0 :(得分: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