Página 1 de 1

Acessar link anchor Html Javascript [RESOLVIDO]

Enviado: Qui Jan 07, 2016 3:53 pm
por Andrigue Viçosa
Olá pessoal tudo bem?


Sou novo por aqui e primeiramente agradeço aos menbros e equipe do fórum por dedicarem um pouco
do tempo de vida e compartilhar informações muito valiosas com pessoas desconhecidas.
Pessoal estou com um grande problema na interação do VBA Excel com um site, e isto está empacando minha aplicação
completamente. Já tentei muitos trechos de códigos e até agora o resultado não é bom, meu pequeno arsenal de gambiarras
findou.
Estou acessando um site e alguns elementos ao invés de serem simples botões inputs HTML são anchor (<a>) em javascript, e preciso acessar
estes links para dar continuedade ao meu trampo. Em determinada parte do site contém a sequinte frase:

"Se você é um Usuário Master e este é seu primeiro acesso, clique 'aqui'"

Este bendito 'aqui' é composto do sequinte trecho de código:
<a id="_id35:_id38" onclick="var form=formOf(this);form['_id35:_idcl'].value='_id35:_id38';return iceSubmit(form,this,event);"
onfocus="setFocus(this.id);" onblur="setFocus('');" href="javascript:;">aqui</a>

Já tentei utilizar

Set linkAqui= formulario.elements("_id35:_id38")
linkAqui.click

Set linkAqui= formulario.elements("_id35:_id38")
linkAqui.onclick

Call ie.Document.parentWindow.execScript("_id35:_id38", "JavaScript")

Com toda a certeza algumas tentativas foram mais tiros no escuro que qualquer outra coisa, más minha dúvida é
como acessar este bendito link javascript.





Desde já Agradeço !

Re: Acessar link anchor Html Javascript

Enviado: Qui Jan 07, 2016 6:59 pm
por Mikel Silveira Fraga
Andrigue Viçosa, seja muito bem vindo ao fórum.

Olha, sei bem como é complicado quando ficamos presos em determinado problema, mas estamos aqui pra tentar ajudar.

A linha de código que você esta tentando acessar é essa, certo:

Código: Selecionar todos

<a id="_id35:_id38" onclick="var form=formOf(this);form['_id35:_idcl'].value='_id35:_id38';return iceSubmit(form,this,event);"
onfocus="setFocus(this.id);" onblur="setFocus('');" href="javascript:;">aqui</a>
Tente utilizar o código abaixo, e veja se vai surtir resultado:

- Em algum lugar do script, declare as duas variáveis.

Código: Selecionar todos

Dim objLink, objElementCol as Object
Agora vamos substituir as linhas de código que você esta tentando, pela sequência abaixo:

Código: Selecionar todos

'Inicia o objeto objElementCol - Estou considerando que foi atribuido ao objeto 'formulario', o caminho 'IE.document'.
Set objElementCol = formulario.getByElementsTagName("a")

'Será iniciado um laço por todos os elementos anchor.
For Each objLink in objElementCol
	'Realiza um teste entre o texto que deseja e o texto do link.
	If objLink.innerText = "aqui" Then objLink.click  
Next objLink
Essa rotina acima permite que o VBA navegue por todos os elementos Anchor e faça testes/ações que o usuário desejar.

Já vou adiantando que o fato de não ter acesso a estrutura do site, por ser uma aplicação restrita, fica mais complicado chegarmos a uma solução definitiva de forma rápida. Mas não desanime, vamos trocando uma ideia e veremos onde vamos chegar.

Forte abraço e aguardo retorno.

Re: Acessar link anchor Html Javascript [RESOLVIDO]

Enviado: Sex Jan 08, 2016 9:44 am
por Andrigue Viçosa
Mikel Silveira Fraga escreveu:Andrigue Viçosa, seja muito bem vindo ao fórum.

Tente utilizar o código abaixo, e veja se vai surtir resultado:

- Em algum lugar do script, declare as duas variáveis.

Código: Selecionar todos

Dim objLink, objElementCol as Object
Agora vamos substituir as linhas de código que você esta tentando, pela sequência abaixo:

Código: Selecionar todos

'Inicia o objeto objElementCol - Estou considerando que foi atribuido ao objeto 'formulario', o caminho 'IE.document'.
Set objElementCol = formulario.getByElementsTagName("a")

'Será iniciado um laço por todos os elementos anchor.
For Each objLink in objElementCol
	'Realiza um teste entre o texto que deseja e o texto do link.
	If objLink.innerText = "aqui" Then objLink.click  
Next objLink
Essa rotina acima permite que o VBA navegue por todos os elementos Anchor e faça testes/ações que o usuário desejar.

Já vou adiantando que o fato de não ter acesso a estrutura do site, por ser uma aplicação restrita, fica mais complicado chegarmos a uma solução definitiva de forma rápida. Mas não desanime, vamos trocando uma ideia e veremos onde vamos chegar.

Forte abraço e aguardo retorno.

Grande Mikel,

Muitíssimo obrigado funcionou exatamente como eu precisava, certamente terei outras dúvidas más com toda a certeza esse trecho de código vai me ajudar e muito em todo desenvolvimento da minha aplicação, novamente agradeço sua preciosa ajuda.

Abraço e que Deus te Abençoe.