MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter

    avatar
    Dimayju
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 26/04/2017

    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Empty VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter

    Mensagem  Dimayju 26/4/2017, 22:07

    Olá,

    Boa tarde.

    Estou desenvolvendo uma macro no Access que interage com o internet explorer, consigo manipular todos os botões(inserir, reconhecer, extrair), porém tenho um problema quando o assunto é dar um comando do windows(ex.: enter).

    Já tentei vários que achei em outros sites, do tipo (Application.SendKeys "~"), da erro na macro *erro de compilação, metodo ou membro de dados não encontrado

    o exemplo abaixo foi encontrado na internet:

    Código:
    Sub ExemploBuscaGoogle()
    On Error Resume Next
        
        Dim i As Long
        
        Dim ie As Object
        Dim objElement As Object
        Dim objCollection As Object
        'Dim Wait As Object
        'Dim SendKeys As Object
        
        ' Cria instância do IE
        Set ie = CreateObject("InternetExplorer.Application")
        
        ' Define o endereço a ser carregado
        ie.Navigate ("https://www.google.com.br")
        
        ' Define se a janela do IE será ou não exibida
        ie.Visible = True
        
        ' Espera carregar. A espera aqui está definida para 1 segundo,
        ' mas pode ser ajustada dependendo da necessidade.
        Do While ie.Busy
            Application DateAdd("s", 1, Now) '.Wait
        Loop


        ' Busca campos tipo input, uma vez que queremos acessar o campo de busca.
        ' Sabemos que o campo é tipo input porque analisamos o código HTML da página do Google.
        ' O método getElementByTagName retorna todas as TAGs HTML da página carregada com o nome desejado.
        Set objCollection = ie.Document.getElementsByTagName("input")
        
        
        ' Varre os inputs do HTML procurando pelos elementos desejados
        ' Queremos encontrar o elemento input com name = "q"
        ' Uso o while aqui mas poderia usar o 'for each'
        i = 0
        While i < objCollection.Length
            
            ' "q" é o nome do campo de busca, como visto no código HTML
            teste = objCollection(i).Name
            If objCollection(i).Name = "q" Then
                
                ' Preenche o campo de busca com o que queremos
                objCollection(i).Value = "dicasspss.blogspot.com"
            
            End If
            
            i = i + 1
            
        Wend
        
        ' Após preenchermos o campo de pesquisa mandamos um 'enter' para o sistema.
        ' No método SendKeys o 'enter' é representado pelo símbolo ~
        Application.SendKeys ("~")
        

        ' Esperamos novamente o IE carregar a página.
        ' Note que o codigo aqui realiza uma espera de 1 segundo
        ' mesmo sem verificar se o IE está ocupado.
        ' Isso é uma boa estratégia pois diversos sites passam por
        ' mais de uma janela após submeter informações
        ' a um formulário. Então a espera tenta garantir que a janela
        ' final esteja carregada.
        'Application.Wait DateAdd("s", 1, Now)
        Do While ie.Busy
         '   Application.Wait DateAdd("s", 1, Now)
        Loop
        
        
        ' Agora temos que buscar o primeiro link do primeiro resultado.
        ' Novamente temos que analisar o HTML, agora da página de resultados.
        
        
        ' Buscamos as tags 'li' onde class = 'g' da página, pois é onde estão os resultados.
        ' Novamente, sabemos pela análise do HTML.
        Set objCollection2 = ie.Document.getElementsByTagName("li")
        
        
        ' Dentre as tags 'li' buscamos a primeira com classe 'g'
        For Each elemento In objCollection2
            
            ' "q" é o nome do campo de busca, como visto no código HTML
            teste1 = elemento.Name
            If elemento.className = "g" Then
            
                ' Mostra a msgbox com o texto do primeiro resultado
                MsgBox elemento.innerText

                Exit For
            
            End If
        
        Next
        
        ' Fecha a instância do IE
        ie.Quit

    End Sub

    Agradeço o apoio!!
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Empty Re: VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter

    Mensagem  JPaulo 27/4/2017, 09:10

    Ola seja bem vindo ao forum;

    Teste e retorne;

    Código:
    SendKeys "{ENTER}", True


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Folder_announce_new Utilize o Sistema de Busca do Fórum...
    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Folder_announce_new 102 Códigos VBA Gratuitos...
    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Folder_announce_new Instruções SQL como utilizar...
    avatar
    Dimayju
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 26/04/2017

    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Empty Ola seja bem vindo ao forum; Teste e retorne; CÓDIGO: SendKeys "{ENTER}", True

    Mensagem  Dimayju 27/4/2017, 15:06

    JPAULO, Bom dia.

    Obrigado pela ajuda, mas infelizmente ele não aceitou o comando. Simplesmente não deu erro nem teclou enter no navegador, mesmo retirando o "on error resume next".

    Deu certo no código que informei?
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Empty Re: VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter

    Mensagem  JPaulo 27/4/2017, 16:21

    Sim, esse comando que lhe passei funciona aqui.

    A partir desse comando é que o trecho de código não funciona.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Folder_announce_new Utilize o Sistema de Busca do Fórum...
    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Folder_announce_new 102 Códigos VBA Gratuitos...
    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Folder_announce_new Instruções SQL como utilizar...
    avatar
    Dimayju
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 26/04/2017

    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Empty Re: VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter

    Mensagem  Dimayju 27/4/2017, 17:21

    JPAULO,

    Achei num forum em inglês um comando similar, mas também não funcionou, é em javascript.

    Código:
    Sub FillInternetForm()
    Dim IE As Object
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Navigate "https://www.google.com.br"
    IE.Visible = True
    While IE.Busy
    DoEvents
    Wend

    'Set TrackID = IE.Document.getElementById("MDICtextbox")
    'TrackID.Value = "Aspirin"

        Set objCollection = IE.Document.getElementsByTagName("input")
       
       
        ' Varre os inputs do HTML procurando pelos elementos desejados
        ' Queremos encontrar o elemento input com name = "q"
        ' Uso o while aqui mas poderia usar o 'for each'
        i = 0
        While i < objCollection.Length
           
            ' "q" é o nome do campo de busca, como visto no código HTML
            teste = objCollection(i).Name
            If objCollection(i).Name = "q" Then
               
                ' Preenche o campo de busca com o que queremos
                objCollection(i).Value = "globo.com"
           
            End If
           
            i = i + 1
           
        Wend

    IE.Visible = True
    'Esse abaixo no lugar do IE.SendKeys "{ENTER}", True
    'Achei no site ''http://stackoverflow.com/questions/30862049/sendkey-enter-not-working-when-automating-internet-explorer''
    IE.Document.parentWindow.execScript "handleKeyDown({which:13,preventDefault:function(){}});"

    End Sub

    Consegue dar enter ou entender essa função em javascript?
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Empty Re: VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter

    Mensagem  JPaulo 27/4/2017, 18:04

    https://www.maximoaccess.com/t7608-resolvidoacessar-site-que-exige-login-e-senha

    Outro exemplo feito aqui;

    https://www.dropbox.com/s/jpqeyhk09adzvnd/EntraCTT.rar?dl=0



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Folder_announce_new Utilize o Sistema de Busca do Fórum...
    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Folder_announce_new 102 Códigos VBA Gratuitos...
    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Folder_announce_new Instruções SQL como utilizar...
    avatar
    Dimayju
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 26/04/2017

    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Empty Re: VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter

    Mensagem  Dimayju 27/4/2017, 21:23

    JPAULO,

    Boa tarde.

    Baixei o arquivo e testei aqui, para o site em especifico que está no banco de dados funcionou.

    Alterei para o google.com e infelizmente não funcionou.

    Vou continuar procurando aqui, obrigado pela ajuda.

    Conteúdo patrocinado


    VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter Empty Re: VBA interagindo com o internet explorer: erro no metodo "Sendkeys" enter

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 20:49