Neste exemplo, estamos usando o popular navegador Chrome, embora muitos outros navegadores tenham o mesmo método para inspecionar elementos HTML.
O método do botão direito
-
Localize o elemento em questão (no nosso caso, o botão " Postar sua pergunta ").
-
Clique com o botão direito do mouse no elemento
-
Escolha o item suspenso
Inspect
IssoabriráasFerramentasparadesenvolvedoresF12.Estacaixadeferramentasrealçaráautomaticamenteseuelemento.
Como você pode ver, seu elemento tem algumas opções para referenciá-lo. O melhor método é usar seu ID
, pois esse é sempre um valor único.
O ID desse elemento é submit-button-42
, encontrado aqui:
<id="submit-button-42">
No VBA, você pode definir uma variável para este elemento por:
Dim IE As InternetExplorer, myElement As Object
Set IE = New InternetExplorer
Set myElement = IE.document.getElementByID("submit-button-42")
Infelizmente, nem todos os elementos têm um ID. Este elemento está incluído em algumas coleções também. O problema com itens de coleção é que muitos outros elementos também podem ser incluídos nessa mesma coleção - o que significa que não é um valor único.
Em nosso exemplo, há duas coleções às quais podemos nos referir: class
e tag
. O ClassName
é btn__with-icon , que vemos em:
<button class="btn__with-icon"...>
e o TagName
é o botão (que é listado diretamente antes da aula no mesmo exemplo acima).
No VBA, você pode definir uma variável para essas coleções da seguinte maneira:
Dim IE As InteretExplorer, ieClassColl As Object, ieTagColl As Object
Set ieClassColl = IE.document.getElementsByClassName("btn__with-icon")
Set ieTagColl = IE.document.getElementsByTagName("button")
Lembre-se , estes são itens de coleção. Isso significa fazer referência ao nosso botão exato em questão, ou precisamos saber seu índice ou podemos fazer um loop com uma instrução For...Each
Se você sabe que o índice # é 0 , use:
Set ieClassBtn = IE.document.getElementsByClassName("btn__with-icon")(0)
Caso contrário, você pode percorrê-los:
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