以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]模拟打开网页中的链接  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=84970)

--  作者:chnfo
--  发布时间:2016/5/14 10:53:00
--  [求助]模拟打开网页中的链接
Dim web As System.Windows.Forms.WebBrowser = e.Form.Controls("Webbrowser1").BaseControl
Dim elem As System.Windows.Forms.HtmlElement
elem = web.Document.GetElementByID("id名称
")   \'查找元素
elem.InvokeMember("click")   \'模拟按键

有个问题,我打开了一个网页的源码,里面没有元素的ID,只看到它的名称,例如
<div class="product-btn">
<a href="url1" target="_blank">猛击这里</a>
</div>

这种情况下,如何才能模拟点击“猛击这里”呢?
查到有getelementsbytagname的方法,只是不知道怎么用。
如果换了webkit,方法可能又不同了。
[此贴子已经被作者于2016/5/14 10:56:08编辑过]

--  作者:Hyphen
--  发布时间:2016/5/14 10:55:00
--  
Dim hec As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("A")

For i As Integer = 0 To hec.Count-1
    If hec(i).InnerHtml.Contains("猛击这里") Then
        hec(i).InvokeMember("click")
        Exit For
    End If
Next

--  作者:qianqian1530
--  发布时间:2016/5/14 10:56:00
--  

找class 元素.


--  作者:qianqian1530
--  发布时间:2016/5/14 11:01:00
--  

 

[此贴子已经被作者于2016/5/14 11:01:13编辑过]

--  作者:chnfo
--  发布时间:2016/5/14 11:40:00
--  
网页源码:
<div class="product-btn">
<a href="url1" target="_blank">猛击这里</a>
</div>
-----------------------------

Dim hec As System.Windows.Forms.HtmlElementCollection = web.Document.GetElementsByTagName("product-btn")

For i As Integer = 0 To hec.Count-1
    If hec(i).InnerHtml.Contains("猛击这里") Then
        hec(i).InvokeMember("click")
        Exit For
    End If
Next

没有反应…………,这是为何
这是html5的网页,会不会跟这个有关?
[此贴子已经被作者于2016/5/14 11:45:24编辑过]

--  作者:Hyphen
--  发布时间:2016/5/14 14:10:00
--  
汗死,不要乱改代码。看2楼
--  作者:大红袍
--  发布时间:2016/5/15 23:13:00
--  

如果你要查找属性,需要这样

 

 
For Each a As object In web.Document.GetElementsByTagName("div")
    If div.GetAttribute("ClassName") = "xxx" Then

        msgbox(div.InnerHtml)

    End If
Next