如何单击WebBrowser中的按钮

时间:2014-01-24 22:38:59

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

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

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中打开。

2 个答案:

答案 0 :(得分:0)

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

reference :: link

答案 1 :(得分:0)

两种方式:

1- with divisions selector

'获取webbrowser1中的所有分部:

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

'转到spesified 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")