Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Como "disparar" script presente na página [RESOLVIDO]

A Web está aí, não há como negar. Ela é onipresente em praticamente toda operação eletrônica realizada nos dias de hoje. Como não podia ser diferente, o Excel, ferramenta máxima para analistas e profissionais das mais diversas áreas do mercado precisa estar alinhado com esta necesssidade. E ele está! Neste forum, o debate é focado em expor dúvidas, sugestões, modelos de código e exemplos de uso do Excel na Integração com tecnologias Web.
gustavoh
Colaborador
Colaborador
Mensagens: 14
Registrado em: Sex Set 18, 2020 1:13 pm

Como "disparar" script presente na página [RESOLVIDO]

Mensagem por gustavoh »

Olá, tudo bem ?

Estou tentando interagir com esses elementos de input que estão presentes na página, mas tem um script me impedindo. Quando tento clicar sobre ele tenho o erro: 'element is not interactable', alguém sabe como posso contornar isso ?

Imagem

Imagem
Anexos
im1.JPG
im1.JPG (51.75 KiB) Exibido 2263 vezes
im2.JPG
im2.JPG (57.53 KiB) Exibido 2263 vezes
Editado pela última vez por gustavoh em Ter Jul 12, 2022 8:38 am, em um total de 1 vez.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Como "disparar" script presente na página

Mensagem por webmaster »

IEControls? Selenium?


gustavoh
Colaborador
Colaborador
Mensagens: 14
Registrado em: Sex Set 18, 2020 1:13 pm

Re: Como "disparar" script presente na página

Mensagem por gustavoh »

Esqueci de informar, desculpa. Estou utilizando o Selenium.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Como "disparar" script presente na página

Mensagem por webmaster »

Desculpe Gustavo, só entendi direito a pergunta agora.

Com o devtools ativado (F12), você pode usar botão de buscar elemento pra evitar o bloqueio de script:
Screen Shot 2022-06-27 at 1.50.25 PM.png
Screen Shot 2022-06-27 at 1.50.25 PM.png (357.72 KiB) Exibido 2224 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


gustavoh
Colaborador
Colaborador
Mensagens: 14
Registrado em: Sex Set 18, 2020 1:13 pm

Re: Como "disparar" script presente na página

Mensagem por gustavoh »

Muito obrigado pela ajuda, mas acho que não entendi muito bem :(
Toda vez que eu executar o script eu preciso fazer isso antes dele começar a executar ?
Vou anexar o código, acredito que possa facilitar:

Código: Selecionar todos

Sub teste()


   Set driver = New ChromeDriver
   driver.Get "http://plataforma.sun21.com.br"

   Application.Wait (Now + TimeValue("00:00:03"))
   

   driver.FindElementById("txtnome").SendKeys "teste"
   
   Application.Wait (Now + TimeValue("00:00:03"))
   

   driver.FindElementById("txtpass").SendKeys "teste"

   Application.Wait (Now + TimeValue("00:00:03"))
   

   driver.FindElementByName("btnPesquisar").Click

   Application.Wait (Now + TimeValue("00:00:03"))


End Sub


gustavoh
Colaborador
Colaborador
Mensagens: 14
Registrado em: Sex Set 18, 2020 1:13 pm

Re: Como "disparar" script presente na página

Mensagem por gustavoh »

webmaster escreveu: Seg Jun 27, 2022 2:52 pm Desculpe Gustavo, só entendi direito a pergunta agora.

Com o devtools ativado (F12), você pode usar botão de buscar elemento pra evitar o bloqueio de script:
Screen Shot 2022-06-27 at 1.50.25 PM.png
webmaster escreveu: Seg Jun 27, 2022 2:52 pm Desculpe Gustavo, só entendi direito a pergunta agora.

Com o devtools ativado (F12), você pode usar botão de buscar elemento pra evitar o bloqueio de script:

Screen Shot 2022-06-27 at 1.50.25 PM.png
Boa tarde, webmaster. Acrescentei o código que tentei executar.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Como "disparar" script presente na página

Mensagem por webmaster »

gustavoh,

De fato o problema existe porque o código está rodando antes do elemento estar na página. Para estes casos, use isto:

https://www.tomasvasquez.com.br/blog/mi ... na-pagina/


gustavoh
Colaborador
Colaborador
Mensagens: 14
Registrado em: Sex Set 18, 2020 1:13 pm

Re: Como "disparar" script presente na página

Mensagem por gustavoh »

Muito obrigado pela ajuda, fiz alguns testes aqui, mas o código não saiu do While do IsElementPresent, tentei clicar no input para "disparar" o script, mas deu erro falando que ele não estava visível :/
Sub teste()

Código: Selecionar todos

   Set driver = New ChromeDriver
   Dim por As New By
   
   Call driver.SetCapability("ignoreZoomSetting", True)
   
   driver.Get "http://plataforma.sun21.com.br"

   Application.Wait (Now + TimeValue("00:00:03"))
   
   'driver.FindElementByName("txtnome").Click
   
   While driver.IsElementPresent(por.ID("txtnome"))
        'espera por um segundo
        'o uso do Application.Wait serve para não congelar a execução do VBA
        Application.Wait Now + TimeValue("00:00:01")
    Wend
    MsgBox ("sai")
   
   driver.FindElementById("txtnome").SendKeys "teste"
   

End Sub


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Como "disparar" script presente na página

Mensagem por webmaster »

gustavoh,

O código está fazendo o que pediu :)

Esta linha:

Código: Selecionar todos

While driver.IsElementPresent(por.ID("txtnome"))
Quer dizer: Espere o enquanto o elemento estiver presente.

O que você realmente quer é:

Código: Selecionar todos

While Not driver.IsElementPresent(por.ID("txtnome"))
Testei aqui e funcionou


gustavoh
Colaborador
Colaborador
Mensagens: 14
Registrado em: Sex Set 18, 2020 1:13 pm

Re: Como "disparar" script presente na página

Mensagem por gustavoh »

Veeerdade, vacilei :roll:

Muito obrigado!!


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder