【问题标题】:C# How to Click Button automatically via WebBrowserC#如何通过WebBrowser自动单击按钮
【发布时间】:2011-09-08 03:44:38
【问题描述】:

我的点击页面的Html代码是:

<input type="submit" id="publishButton-ns" class="ubtn ubtn-block"
 name="publish" tabindex="10" value="Publish Post">

我尝试使用此代码进行点击:

webBrowser1.Document.GetElementById("publishButton-ns").InvokeMember("click");

但这没有找到按钮。

【问题讨论】:

  • 看看底部@Ponmalar 的回答

标签: c# button browser submit


【解决方案1】:

这可能会对你有所帮助。

<input type="submit" value="Submit" />

HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("input");  
foreach (HtmlElement el in elc)  
{  
   if (el.GetAttribute("type").Equals("submit"))  
   {  
        el.InvokeMember("Click");  
   }  
 }

【讨论】:

    【解决方案2】:

    您是否在等待页面首先加载?您应该在代码中绑定一个函数以等待页面加载,然后单击按钮:

    static void form1_Load() {
        // ...
        webBrowser1.onDocumentReady += webBrowser_DocumentReady;
    }
    
    static void webBrowser1_DocumentReady() {
        webBrowser1.Document.GetElementById("publishButton-ns").InvokeMember("Click");
    }
    

    【讨论】:

      【解决方案3】:

      尝试结合@adam 的建议并大写Click

      private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
      {
          webBrowser1.Document
              .GetElementById("ctl00_main_LoginExpoPlanIt_LoginButton")
              .InvokeMember("Click");
      }
      

      刚刚对此进行了测试,它不适用于“点击”,但适用于“点击”:)

      我正在使用 .net 4

      【讨论】:

      • 它仍然没有找到按钮。错误是“nullreferenceException”
      • mdmullinax,感谢您的意见。在“click”中使用小写字母“c”对我也不起作用,但大写字母“C”确实有效。
      【解决方案4】:

      编辑:这仅适用于设置 runat="server" 时,在这种情况下不适用,但留给其他人以防万一,我很抱歉在问题中遗漏了这一点。

      ASP.Net 会根据元素所在的结构更改其呈现的元素的名称,您可以尝试以下方法来获取元素的最终名称:

      webBrowser1.Document.GetElementById("<%=publishButton-ns.ClientID%>").InvokeMember("click");
      

      【讨论】:

      • 输入元素上没有runat="server",所以ASP.NET引擎不会碰它。
      【解决方案5】:

      您可以使用 jQuery,然后执行类似这样的操作 $("#publishButton-ns").click();

      http://www.jQuery.com/

      【讨论】:

        猜你喜欢
        • 2016-07-09
        • 2015-07-06
        • 1970-01-01
        • 2014-12-11
        • 2014-02-16
        • 1970-01-01
        • 1970-01-01
        • 2020-04-29
        • 1970-01-01
        相关资源
        最近更新 更多