c# Win Form - 无法在 WebBrowser 控件中更改 "input" 的文本

c# Win Form - Unable to change text of an "input" in 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");

谁能告诉我怎么做?

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

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

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

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");