我一直在使用此处找到的 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 客户端执行相同的操作。我还没有找到这样的脚本。我能找到的最接近的是脚本专家,Send-WebRequest:
http://gallery.technet.microsoft.com/scriptcenter/7e7b6bf2-d067-48c3-96b3-b38f26a1d143
我什至不确定它是否达到了我的预期(因为没有有效的示例来展示如何做我想做的事情)。
无论如何,我真的很感谢一些帮助,让我开始做与我在工作示例中展示的内容相同的事情(尽可能简单)。一个额外的好处是还能够获取 URI 的元素名称列表,以便了解我想要提交哪些表单元素。
PS:我还需要能够指定用户代理和凭据;因此,包含这些内容的示例将是理想的。
最佳答案
您看过 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
关于javascript - 简化的 Powershell Web 客户端功能让我可以轻松发布表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19872222/