【问题标题】:How To Click A Button In The WebBrowser如何单击 WebBrowser 中的按钮
【发布时间】:2014-02-16 02:27:20
【问题描述】:

我正在创建一个程序,让您登录网站,然后单击页面上的按钮。此按钮不像可以使用此脚本调用的普通按钮:

WebBrowser).Document.Forms(0).InvokeMember("submit")

在我的项目中手动单击该按钮时,会打开 Internet Explorer 会话并导航到页面。

按钮的来源:

<form id="vform1" action="/account/vote/" method="post" target="_blank">
<input type="hidden" name="id" value="1">
<div class="cpBtn" style="height:38px; width:95px;" onclick="document.getElementById('vform1').submit();">
<p style="margin:11px auto;">Open WoW</p></div></form>

我的问题:如何使用 VB.net 脚本单击此按钮以及如何使其在新选项卡而不是 Internet Explorer 中打开。

【问题讨论】:

    标签: .net vb.net browser webbrowser-control


    【解决方案1】:

    有两种方法:

    1- 带分区选择器

    '获取您的 webbrowser1 中的所有分区:

     Dim divs As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("div")
    

    '转到指定的div并点击它:

    for each mydiv as Htmlelement in divs
    
    if (mydiv .GetAttribute("class").Tostring = "cpBtn" ) then mydiv.InvokeMember("Click") 
    
    next 
    

    2- 带表单选择器

    Dim forms As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("form")
     for each myform as Htmlelement in forms
    
    if (myform.GetAttribute("id").Tostring = "vform1" ) then myform.InvokeMember("Submit") 
    
    next 
    

    注意:如果您知道这只是您的网络浏览器中的一种形式,那么就这样做吧:

     WebBrowser1.Document.GetElementsByTagName("form")(0).InvokeMember("Submit")
    

    【讨论】:

      【解决方案2】:
      public partial class _Default : System.Web.UI.Page, IPostBackEventHandler
      
      {
      
      protected void Page_Load(object sender, EventArgs e)
      
      {
      
      div1.Attributes["onclick"] = ClientScript.GetPostBackEventReference(this, "ClickDiv");
      
      }
      
      protected void Div1_Click()
      
      {
      
      // Do something
      
      }
      
      #region IPostBackEventHandler Members
      
      public void RaisePostBackEvent(string eventArgument)
      
      {
      
      if (!string.IsNullOrEmpty(eventArgument))
      
      {
      
      if (eventArgument == "ClickDiv")
      
      {
      
      Div1_Click();
      
      }
      
      }
      
      }
      
      #endregion
      
      }
      

      将其转换为 VB.Net

      参考 :: link

      【讨论】:

        猜你喜欢
        • 2012-07-01
        • 2014-12-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-31
        • 1970-01-01
        • 2011-09-08
        • 1970-01-01
        相关资源
        最近更新 更多