Примерно так
1. Подключаю библиотеку MSHTML
Library MSHTML
C:\WINDOWS\system32\MSHTML.TLB
Microsoft HTML Object Library
2. Объявляю
- Код: Выделить всё
Public wbDoc As MSHTML.HTMLDocument
Public oHTMLGenericElement As MSHTML.HTMLGenericElement
Public buttn As MSHTML.HTMLGenericElement
Public j As Long ' <<<=== !!
3. Получаю объект wbDoc и ищу там нужную Кнопку;
в моем случае Кнопка на Web-странице звучала так [ в HTML ]
<input type="submit" class="srch" id="q_3" value="Search">
4. Потом
buttn.Click .
Обрати внимание, что поиск ведется с установленного тобой
заранее значения
j !
У меня так:
'<
input type="submit" class="
srch" id="q_3" value="Search">
If FindElementBy
TagNameAnd
ClassName_part_Value( "
INPUT", "
srch" ) Then
- Код: Выделить всё
If FindElementByTagNameAndClassName_part_Value( "INPUT", "srch" ) Then
Set buttn = oHTMLGenericElement
Else
. . .
End If
.
.
.
Public Function FindElementByTagNameAndID_part_Value( _
theTagName As String, the_ID_part_Value As String) As Boolean
FindElementByTagNameAndID_part_Value = False
With wbDoc
Do While j < .all.Length
Set oHTMLGenericElement = .all(j)
If Not oHTMLGenericElement.tagName = theTagName Then GoTo Next_j
If InStr(UCase$(oHTMLGenericElement.ID), UCase$(the_ID_part_Value)) > 0 Then
FindElementByTagNameAndID_part_Value = True
Exit Function
End If
On Error GoTo 0
Next_j:
j = j + 1
Loop
End With
MsgBox "Function FindElementByTagNameAndID_part_Value!", , "Done : Not finded !"
End Function
.
.
Public Function FindElementByTagNameAndClassName_part_Value( _
theTagName As String, the_ClassName_part_Value As String) As Boolean
FindElementByTagNameAndClassName_part_Value = False
With wbDoc
Do While j < .all.Length
Set oHTMLGenericElement = .all(j)
If Not oHTMLGenericElement.tagName = theTagName Then GoTo Next_j
If InStr(UCase$(oHTMLGenericElement.className), UCase$(the_ClassName_part_Value)) > 0 Then
FindElementByTagNameAndClassName_part_Value = True
Exit Function
End If
On Error GoTo 0
Next_j:
j = j + 1
Loop
End With
MsgBox "Function FindElementByTagNameAndClassName_part_Value!", , "Done : Not finded !"
End Function
Почему-то я искал не по ID, а по class.
В твоем случае
<div class="where active" id="where_222222">
<span class="buttons">
<span class="btn enabled"
я бы сначала искал по "DIV" и ID="where_222222";
потом
продолжил бы (
т.е., не меняя j ! ) по "SPAN" и class="btn enabled".
Код, конечно, страшный [ ибо я - быдлокодер, увы . . . ] - но работал.
Модератору: если сочтете нужным - смело удаляйте все, чтобы я не портил знания / представления другим дурным образцом.
С уважением