【问题标题】:How to use multiple WebBrowser DocumentCompleted如何使用多个 WebBrowser DocumentCompleted
【发布时间】:2017-06-08 14:00:19
【问题描述】:

我希望能够打开网页、登录并能够在下一页上执行操作。 DoPlan 不会执行。到目前为止,这是我的代码......(我知道我有很多变量)

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        webBrowser1.Navigate("t");
    }

    private void DoPlans(object sender,
WebBrowserDocumentCompletedEventArgs e)
    {
        textBox1.AppendText("started");
        webBrowser1.Document.GetElementById("t").InvokeMember("Click");
        webBrowser1.Document.GetElementById("t").InvokeMember("Click");
        foreach (HtmlElement elem in webBrowser1.Document.GetElementsByTagName("input"))
        {
            if (elem.GetAttribute("value") == "Submit Weekend Plans")
            {
                elem.InvokeMember("Click");
            }
        }
    }

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        webBrowser1.Document.GetElementById("username").SetAttribute("value", "t");
        webBrowser1.Document.GetElementById("password").SetAttribute("value", "t");
        foreach (HtmlElement elem in webBrowser1.Document.GetElementsByTagName("input"))
        {
            if (elem.GetAttribute("value") == "Login")
            {
                webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DoPlans);
                elem.InvokeMember("Click");
            }
        }
    }
}

【问题讨论】:

  • 您正在订阅事件自己的事件处理程序中的事件。似乎是正确的方法。
  • 我看到您正在搜索一个元素并点击它。但是您订阅了错误的事件。如果单击确实有效,则网络浏览器将导航到另一个页面。在这里,同一个事件处理程序应该第二次触发。您只需要区分不同的页面。您可以尝试使用e.Url

标签: c# winforms webbrowser-control


【解决方案1】:

试试这样的:

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    switch (e.Url.ToString())
    {
        case "home page":
        {
            // fire click
            break;
        }
        case "next page":
        {
            // handle logged in user
            break;
        }
    }
}

【讨论】:

    猜你喜欢
    • 2014-01-01
    • 1970-01-01
    • 2015-11-20
    • 2012-08-30
    • 2012-05-30
    • 2013-10-22
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    相关资源
    最近更新 更多