通过查找字符串Vb.net点击链接!

时间:2010-10-19 15:21:35

标签: vb.net browser hyperlink

我正在开发一个vb.net程序,我想点击页面上的超链接,源代码如下:

<a href="user_messages_view.php?id=23112">messages for Today, 2010-10-19 </a>

我也想每天检查一下!

我尝试使用以下方法点击它(两者都无法点击链接!):

Dim theElementCollection As HtmlElementCollection
    Dim ctrlIdentity As String
     theElementCollection = WebBrowser1.Document.GetElementsByTagName("a")
     For Each curElement As HtmlElement In theElementCollection
    ctrlIdentity = curElement.GetAttribute("innerText").ToString
     If ctrlIdentity = Today.Date.ToString(Today.Date.ToString("dd")) Then
    curElement.InvokeMember("click")
     End If
     Next

我也试过这段代码:

        If Me.WebBrowser1.Document.Links(i).InnerHtml.Contains(Today.Date.ToString("dd")) Then
    Me.WebBrowser1.Document.Links(i).InvokeMember("Click")
     End If
     Next

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

我发现在WebBrowser中点击链接的最佳方法是使用javascript。尝试这样的事情:

WebBrowser1.Navigate("javascript:function%20x(){document.getElementById('foo').click()}x()")

你需要在javascript中重写上面的代码,但那是件小事。您可以通过将javascript直接复制粘贴到浏览器的位置栏来测试您的javascript。这也是填写表格的可靠方式。

注意事项:

  • 注意我想要做的工作是如何包含在一个函数中的。如果您希望javascript执行多个语句,则需要这样做。包装函数然后调用函数。
  • 您无法导航到超过500个字符的网址。 (限制不完全是512,但它很接近。)也没有警告,所以请记住。
  • 确保您等到页面加载完毕。 ReadyState = Complete和IsBusy = False。
  • 点击此链接并不总是会生成您点击链接时获得的常见事件。
  • “%20”为空格十六进制。我不记得这是否在我的代码中是绝对必要的。尝试两种方式。