В этом примере мы используем популярный браузер Chrome, хотя во многих других браузерах используется тот же метод проверки HTML-элементов.
Метод правого клика
Найдите нужный элемент (в нашем случае, кнопка « Опубликовать вопрос »).
Щелкните правой кнопкой мыши элемент
Выберите выпадающий элемент Inspect
Это вызовет F12 Developer Tools. Этот набор инструментов автоматически выделит ваш элемент.
Как видите, у вашего элемента есть несколько опций для ссылки на него. Лучший метод - использовать его ID
, так как это всегда уникальное значение.
Идентификатор этого элемента - submit-button-42
, который вы нашли в этом:
<id="submit-button-42">
В VBA вы можете установить переменную для этого элемента:
Dim IE As InternetExplorer, myElement As Object
Set IE = New InternetExplorer
Set myElement = IE.document.getElementByID("submit-button-42")
К сожалению, не каждый элемент имеет идентификатор. Этот элемент также включен в пару коллекций. Проблема с элементами коллекции заключается в том, что многие другие элементы также могут быть включены в эту же коллекцию - это означает, что это не уникальное значение.
В нашем примере есть две коллекции, на которые мы можем ссылаться: class
и tag
. ClassName
- это btn__with-icon, который мы видим из:
<button class="btn__with-icon"...>
и TagName
- кнопка (которая указана непосредственно перед классом в том же примере выше).
В VBA вы можете установить переменную для этих коллекций как таковую:
Dim IE As InteretExplorer, ieClassColl As Object, ieTagColl As Object
Set ieClassColl = IE.document.getElementsByClassName("btn__with-icon")
Set ieTagColl = IE.document.getElementsByTagName("button")
Помните, это предметы коллекции. Это означает, что для ссылки на нашу конкретную кнопку мы должны знать ее индекс, или мы можем выполнить цикл с помощью For...Each
утверждение
Если вы знаете, что индекс # равен 0, используйте это:
Set ieClassBtn = IE.document.getElementsByClassName("btn__with-icon")(0)
В противном случае вы можете просмотреть их:
Dim o As Object, oColl As Object
Set oColl = IE.document.getElementsByTagName("button")
For Each o In oColl
If o.innerText = "Post Your Question And Answer" Then
Exit For
End If
Next