如何使用vb.net调用在Web浏览器中单击div

时间:2013-04-23 15:21:57

标签: vb.net

这是我的代码片段VB.Net代码:

Try
  Dim elements = browser.Document.GetElementsByTagName("div")
  For Each element As HtmlElement In elements
    If element.GetAttribute("className") = "next button" Then                    
      element.Focus()                    
      element.InvokeMember("click")
    End If
  Next
Catch ex As Exception
  MessageBox.Show(ex.Message)
End Try

- 有关这个的任何帮助吗?

1 个答案:

答案 0 :(得分:0)

在客户端尝试这一切:

HTML:

<div class="next button" style="float: left;" onclick="scroll()" title="Hold down to scroll through records faster.">»</div>

使用Javascript:

function scroll() {
    //this is your div click event.
}

使用JQuery代替vanilla Javascript:

<div id="divBtn" class="next button" style="float: left;" title="Hold down to scroll through records faster.">»</div>

JQuery的:

$('#divBtn').click(function () {
    //this is your div click event.
});

从服务器端调用Div click事件:

对于这个例子,我使用的是asp.net内置的scriptmanager类,但我知道AJAX控件工具包有自己的版本,所以你可以真正使用你习惯的那个,但函数调用和参数可能是不同。

获得脚本管理器后,您需要知道点击处理程序的名称。我假设您正在为您的点击处理程序使用javascript函数,因为您的div上没有runat="server"属性。

因此,一旦您分配了div的点击功能并且您的脚本管理器都已设置完毕,您将使用ScriptManager.RegisterStartupScript功能。可以找到文档here

类似的东西:

 ScriptManager.RegisterStartupScript(Me.Page, Me.Page.GetType, "nameOfScript", "DivClickHandler", True)
当页面加载时,

会告诉你的页面调用div click处理程序。

使用invokemember时遇到的问题是,当单击处理程序在客户端(在javascript中)或未在服务器上注册时,您在服务器端调用它(因为您的div没有{{ 1}}属性集。所以当你在你的vb中调用invokemember时,它没有做任何事情,因为就你的服务器而言,处理程序不存在。