1
我希望能够打开一个网页,登录并能够在下一页上做的事情。 DoPlans不会执行。这是到目前为止我的代码...(我知道我有吨有很多的变量)如何使用多个WebBrowser文档完成
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");
}
}
}
}
你在里面订阅事件事件自己的事件处理程序。似乎是正确的方法。 – abatishchev
我看到你正在寻找一个元素并点击它。但是你正在订阅错误的事件。如果点击确实起作用,那么Web浏览器将导航到另一个页面。这里同一个事件处理程序应该第二次触发。你只需要区分不同的页面。你可以尝试使用'e.Url'。 – abatishchev