Este blog é um complemento do nosso canal no YouTube. Clique em @CanalQb para seguir e acompanhar nossos vídeos!

Sugestões de pesquisas

Como Clicar em Botão HTML com VBA Sem Atributo Nome

#VBAWebBrowser; #automacaohtml; #botaohtmlsemnome
@CanalQb

Aprenda a usar VBA para clicar em botões HTML sem atributo nome

Neste post tutorial você vai aprender como simular um clique em botões HTML via VBA mesmo quando eles não têm um atributo name — algo comum ao lidar com automações em WebBrowser usando o Internet Explorer.

@CanalQb

Problema: botão HTML sem atributo name

Ao automatizar uma ação de clique via VBA no Internet Explorer, o método mais comum é usar getElementsByName. No entanto, quando o botão HTML não possui esse atributo, é necessário utilizar alternativas como querySelector com seletores CSS.

Exemplo de botão em HTML:

<input type="submit" value="Login" onclick="submitForm();" />

Erro comum em VBA:

objIE.document.getElementsByName("Login")(0).Click

Alternativa funcional usando seletores:

objIE.document.querySelector("[onclick='submitForm();']").click

Outras possibilidades incluem:

  • objIE.document.querySelector("[value=Login]").click
  • objIE.document.querySelector("[type=submit]").click

Para enviar o formulário diretamente, utilize:

objIE.document.getElementsByTagName("form")(0).submit

Quando há múltiplos elementos iguais

Você pode utilizar:

objIE.document.querySelectorAll("[type=submit]").item(1).click

A indexação começa do zero, ou seja, item(1) acessa o segundo botão do tipo submit.

Exemplo de botão com ID e CSS embutido

Exemplo real de botão HTML encontrado em sistemas mais complexos:

<button type="button" id="botaoFlatConfirmar" onclick="if (critica(...)) { consultar(); }" 
style="background: url(...); height: 22px;" title="Confirmar"> Confirmar </button>

O atributo id="botaoFlatConfirmar" pode ser utilizado diretamente com JavaScript/VBA.

Função VBA com XPath e ID

Você pode utilizar a função abaixo em um módulo:

Public Function getXPathElement(sXPath As String, objElement As Object) As HTMLBaseElement
  ' Função recursiva que navega pela árvore de nós HTML para localizar elementos por XPath
  ' [conteúdo da função mantido como no original]
End Function

Exemplo de uso:

Set ele = getXPathElement("/table/tbody[3]/tr[1]/td[2]/input[1]", HTMLDoc.getElementById("botaoFlatConfirmar"))
If Not ele Is Nothing Then
  ele.Click
End If

Dicas práticas para automação com segurança

  • Evite usar sua carteira principal para testes ou automações em sites desconhecidos.
  • Use navegadores em modo sandbox para testar scripts VBA com WebBrowser.
  • Utilize ferramentas como Guia de seletores CSS para identificar elementos HTML corretamente.

Sempre crie uma frase de segurança única para jogos, @CanalQb e qualquer outra coisa de origem desconhecida. Nunca reutilize sua carteira principal.

Postar um comentário

Comente só assim vamos crescer juntos!
CanalQb mais próximo Quer falar com o CanalQb?
Em que posso te ajudar?
Fale comigo