在一網頁內,相關代碼如下
<div id="toolbar" style="margin-top: 3px;">
<button type="button" id="btnClose" name="btnClose">
退出</button>
<button type="button" id="btnSave" name="btnSave">
保存</button>
<button type="button" id="btnModify" name="btnModify">
修改</button>
<button type="button" id="btnSCustomer" name="btnClose">
轉我客戶</button>
<button type="button" id="btnPrivateCustomer" name="btnClose">
轉公共</button>
<button type="button" id="btnReturn" name="btnReturn">
退回</button>
</div>
我用WebBrowser作程式,目的 是將自動獲取按扭,自動點擊,當然,我是先設為修改安鈕標題作為試驗,能實作這個點擊也就實作了,但問題是找不到我批定按鈕。代碼如下
Private Sub Timer1_Timer()
Dim i&
'' Dim IDoc As HTMLDocument
Set IDoc = WebBrowser1.document
''' Dim Acollection As IHTMLElementCollection
'' '' '' '' '' ' '' '' '' '' ''
''''''''原來代碼
Set Acollection = IDoc.All.tags("button")
Dim s2 As String
For i = 0 To Acollection.length - 1
s2 = Acollection.Item(i).Type
Debug.Print s2
If s2 = "button" Then Acollection.Item(i).Value = "222" ’這是為讓我看到效果
If Acollection.Item(i).Name = "word" Then Acollection.Item(i).Value = “這就是我要找的”
Next
' '' '' '' '' '' '修改測驗'' '' '' '' '' '' '' '' '' '' '' '' '' '' ''‘’‘’‘’‘’‘’‘’‘’‘’‘’‘ '' '' '' '' '' '' '' '' ''
Set Acollection = IDoc.All.tags("button")
Dim s3 As String
Dim s33 As String
For i = 0 To Acollection.length - 1
s3 = Acollection.Item(i).Type
s33 = Acollection.Item(i).Name
' Debug.Print s3
If s3 = "button" Then Acollection.Item(i).Value = "你好呀" ‘這里結果顯示出來了
If s33 = "btnModify" Then
Acollection.Item(i).Value = "我要找的"
End If
End If
'''''' If s33 = "btnModify" Then Acollection.Item(i).Click
Next
測驗結果是所有按鈕都找到了,也就是 所有按鈕 都顯示“2222222” 或"你好呀"
但就是找不到我指字的那個 修改<button>
求解如何解決
uj5u.com熱心網友回復:
你為什么不用ID來查?WEBBROWSER.DOCUMENT.GETELEMENTBYID.btnModify這樣不是就查到了?完了直接在執行他的CLICK事件啊。WEBBROWSER.DOCUMENT.GETELEMENTBYID.btnModify.click();uj5u.com熱心網友回復:
Sub 查找修改按鈕并單擊()
On Error Resume Next
With CreateObject("internetexplorer.application")
.Visible = True
.Navigate "http://www.abcd1234.com/" '這里填入網頁地址
Do Until .ReadyState = 4
DoEvents
Loop
.document.All("btnModify").Value = "1234567890" '標記一下,主要是看看是不是修改按鈕
.document.All("btnModify").Click '點擊,
End With
End Sub
uj5u.com熱心網友回復:
你的htm標簽有 name 屬性你才能夠通過 s33 = Acollection.Item(i).Name 取得相關的值,如果沒有你當然是取不到 Name 這個屬性的值,還有,在前臺腳本中通常是以 id 屬性來使用物件的,name 屬性通常是將表單資料提交給服務器腳本時才會用到,所以你改為 s33 = Acollection.Item(i).id 可能會行得通uj5u.com熱心網友回復:
解決了嗎?遇到同樣的問題了。呵呵uj5u.com熱心網友回復:
自己解決了:
'測驗系結網頁中測驗按鈕單擊事件
Dim doc As HtmlDocument = webMain.Document
Dim btnTest As HtmlElement = doc.All("btnTest")
'委托處理事件的處理程式
If Not IsNothing(btnTest) Then
AddHandler btnTest.Click, AddressOf btnTest_Click
End If
Private Sub btnTest_Click(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
Dim obj As HtmlElement = CType(sender, HtmlElement)
Debug.Print("接收到 " & obj.Id & " 的 " & e.EventType & " 事件")
End Sub
uj5u.com熱心網友回復:
我解決了找出原因了,原來問題在于這個網頁中用了架框!我想請教一下2樓,和樓上,我原來的代碼與你們的這代碼有什么樣的不同,哪一種更好一點轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/118121.html
標籤:控件
上一篇:vb按條件讀取access內容
