【问题标题】:WebBrowser submit form, follow redirect, click URL, follow redirect automationWebBrowser 提交表单,跟随重定向,点击 URL,跟随重定向自动化
【发布时间】:2014-01-11 12:10:53
【问题描述】:

我正在尝试创建一个基本上执行以下操作的程序:

  • 打开一个网址
  • 进入第一个表单(网络表单)
  • 提交并遵循表单操作
  • 点击下一页上的网址
  • 然后退出

到目前为止,我已经尝试使用事件处理程序 (DocumentCompleted),然后通过 wb.Document.Forms[0] 访问表单,然后使用 SetAttribute。这不起作用,因为我几乎登录了,所以它只在最后提交了表单(因为那是在 DocumentCompleted 事件下),在为多个帐户加载了所有登录信息之后(是的,我正在登录多个帐户)。有任何想法吗?我迷路了。我在下面提供了一个我尝试过的基本示例。我还没有点击下一页上的链接,因为我还没有成功登录。起初我在没有事件处理程序的情况下尝试了这个,但后来我意识到它是必需的,否则 web.Document 总是返回 null。然后我尝试在 foreach 中添加事件处理程序,并在事件的函数中添加 if 语句。正如我之前所说,这仅在最后起作用,即使在那之后,我也不相信登录成功,尽管我不是 100% 的。

foreach(login in logins){
    if (web.Document != null)
    {
        var form = web.Document.Forms[0];
        var input = form.Children[0];
        input.SetAttribute("value", "input value");
        form.InvokeMember("submit");
    }
}

【问题讨论】:

  • @user3184111,这背后的目标是什么:GUI 测试自动化,还是web-scrapping
  • 废话不多说。我已经到了现在我可以修改数据等的地步,但它在所有用户循环之后才会这样做。好吧,假设我所有的用户都加入了,最后它会像 40 个 WebBrowser_DocumentCompleted 实例一样打开,但我需要它在用户之间完成每一个,而不是最后一次。
  • 检查 this 以获取您可以根据需要进行调整的示例代码。

标签: c# webforms


【解决方案1】:

我不确定你是否想用它来测试,但你可以使用 Coded Ui Test 来测试。您可以记录操作,然后为此生成代码,然后重复运行。

http://msdn.microsoft.com/en-us/library/dd286726.aspx

【讨论】:

  • 我说的是网络表单。也许我应该指定这一点。我的错。
  • 我不想验证或测试任何东西。我有一个网页,我希望这个程序能够联系并登录,然后检索下一页上的 url。
  • 答案背后的想法不是您需要测试或验证任何东西,而是编码的 ui 测试框架将提供代码来自动执行您所要求的每个操作
  • 这会让我对 HTML 页面做同样的事情吗?我在 MSDN 上没有看到任何解释。
  • 是的。您可以先使用 MTM 记录步骤,然后生成代码。看到这个链接msdn.microsoft.com/en-us/library/dd286608(v=vs.100).aspx
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
  • 2020-04-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2012-05-04
  • 1970-01-01
相关资源
最近更新 更多