javascript - 简化的 Powershell Web 客户端功能让我可以轻松发布表单数据

标签 javascript php forms powershell web-client

我一直在使用此处找到的 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/

相关文章:

javascript - Magnific-Popup 不允许其自身的弹出窗口获得焦点

javascript - 如何在 JavaScript 中创建字符串有向图?

javascript - 获取ajax调用的php返回值

php - 如何使 mysql 搜索允许两个单独的搜索类别?

php - Unix `at` 命令通过 PHP

具有 5000 个值的 Angular Material Form 自动完成

javascript - 如果选中复选框,则获取当前位置

javascript - 微小的滚动条不适用于 javascript(javascript 冲突)

javascript - 在运行 apache 的 blueonyx 服务器上找不到文件

php - Symfony form.vars.data 与 form.vars.value