c #Win Form - 无法在WebBrowser控件中更改“输入”的文本

时间:2017-08-22 07:47:41

标签: c# html .net winforms webbrowser-control

我使用Webbrowser控件使用以下代码

登录此page
webBrowser1.Navigate(new Uri("https://services.gst.gov.in/services/login"));

现在更改密码我正在使用下面的代码无效。

webBrowser1.Document.GetElementById("user_pass").InnerText = "ABC123";
//OR
webBrowser1.Document.GetElementById("user_pass").SetAttribute("type", "text");
webBrowser1.Document.GetElementById("user_pass").SetAttribute("text", "ABC123");
//OR
webBrowser1.Document.GetElementById("user_pass").SetAttribute("text", "ABC123");
//OR
webBrowser1.Document.GetElementById("user_pass").SetAttribute("value", "ABC123");

谁能告诉我怎么做?

2 个答案:

答案 0 :(得分:2)

首先,您必须等待页面完全加载

webBrowser1.DocumentCompleted += OnDocumentLoaded;
webBrowser1.Navigate(new Uri("https://services.gst.gov.in/services/login"));

现在您可以设置value属性(包含<input>元素的内容):

private void OnDocumentLoaded(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    webBrowser1.Document.GetElementById("user_pass")
        .SetAttribute("value", "the_password");    
}

作为替代方案,您也可以发送击键:

    webBrowser1.Document.GetElementById("user_pass").Focus();
    SendKeys.Send("the_password");

答案 1 :(得分:0)

您尝试设置的字段是密码类型字段,而不是文本类型字段。这不是一个很好的方法,但我建议你这样做:

webBrowser1.Document.GetElementById("user_pass").SetAttribute("value", "ABC123");