Notifications
Clear all

FECHAR POP UP

10 Posts
3 Usuários
0 Reactions
1,847 Visualizações
(@fecesar)
Posts: 0
New Member
Topic starter
 

Boa tarde galera.

gostaria de saber se tem como eu fechar um janela pop up de um site usando vba.
Eu consigo logar certinho no site, mas na hora de sair apresenta uma msg e a macro não continua rodando até eu clicar no "OK".
Tem alguma forma de fechar este popup automatico atraves da macro ou chamando um script?

Desde ja agradeço.

 
Postado : 11/01/2017 11:29 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde FeCesar,

Tenta utilizar isso logo após o login:

application.sendkeys("{Enter}")

Qualquer coisa da o grito.
Abraço

 
Postado : 11/01/2017 11:35 am
(@fecesar)
Posts: 0
New Member
Topic starter
 

Bernardo obrigado por responder.
Mas o que acontece e que a macro para antes de executar esta linha, e fica esperando a resposta do usuário para dar continuidade.

 
Postado : 12/01/2017 8:31 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia FeCesar,

Tenta usar "doEvents".

Qualquer coisa da o grito.
Abraço

 
Postado : 12/01/2017 8:45 am
(@fecesar)
Posts: 0
New Member
Topic starter
 

Neste caso seria desta forma:

doEvents
application.sendkeys("{Enter}")

pq mesmo assim não funcionou.

 
Postado : 12/01/2017 10:28 am
(@skulden)
Posts: 0
New Member
 

Neste caso seria desta forma:

doEvents
application.sendkeys("{Enter}")

pq mesmo assim não funcionou.

Não.

Do While appIE.Busy
DoEvents
Loop

application.sendkeys("{ENTER}")

Substitua o "appIE" pelo objeto do Internet Explorer que você usa no código.

 
Postado : 12/01/2017 11:36 am
(@fecesar)
Posts: 0
New Member
Topic starter
 

Galera...
não estou conseguindo fazer desta forma.
tentei de algumas formas mas não deu certo.
Segue código para ficar melhor.

Private Sub CommandButton1_Click()

    Dim IE As Object
    
    Set IE = CreateObject("InternetExplorer.application")
    With IE
        .Visible = True
        .navigate ("http://www.metropasseonline.com.br/")
        While .Busy Or .readyState <> 4:
        DoEvents:
    Wend
    
    Dim document As HTMLDocument
    Dim elementos As IHTMLElementCollection
    Dim elemento As IHTMLElement
    
    Set document = IE.document
    
    Set elementos = document.getElementsByTagName("td")
    
    For Each elemento In elementos
        
        If elemento.getAttribute("title") = "Sair do sistema" Then
        elemento.Click
        Application.SendKeys ("{ENTER}")
            End If
        
    Next 

Desde já agradeço a ajuda.

 
Postado : 12/01/2017 1:19 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Cara, não tenho login na página, como o Pop Up aparece apenas ao Sair do sistema eu não vou conseguir visualizar.

Tira um print do pop up aparecendo.

 
Postado : 13/01/2017 5:42 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Cara, consegui identificar aqui...
Site ultrapassado pra caramba na "linguagem"...

Seguinte...
Ao clicar no botão Fechar (Sair do sistema), ele roda um script que vai te jogar na tela dois pop up's....
Ao confirmar, ele apenas te direciona para uma página de LogOut e essa página que deve fazer o encerramento do login.
Para resumir seu código, basta direciona-lo a essa página de uma vez...

onclick="javascript: if (confirm('Tem certeza que deseja sair do sistema?')){ alert('O MetroPasse Online agradece o seu acesso!');document.location.href='frmlogout.aspx?encerra=true';};

No lugar daquilo tudo, coloca isso para encerrar:

.Navigate ("http://www.metropasseonline.com.br/frmlogout.aspx?encerra=true")

Qualquer coisa da o grito.
Abraço

 
Postado : 13/01/2017 6:15 am
(@fecesar)
Posts: 0
New Member
Topic starter
 

Bernardo cara valeu msm. Mas desta forma não daria certo pra mim. Pq tem outros popup's dentro do site e eu preciso apenas "pressionar" OK.
Mas fiz uma cambiarra aqui e funcionou, da uma olhada.

fiz um vbs da seguinte forma...

Set wshShell = CreateObject("WScript.Shell")

SEILA = wshShell.popup ("",1,"",32)

wshShell.SendKeys "{enter}"

na macro eu chamo esse script antes do click no botão...

 For Each elemento In elementos
        
        If elemento.getAttribute("title") = "Sair do sistema" Then
   Shell "wscript.exe ""G:Analista BKOFelipe CesarCSVOK.vbs""" 
    elemento.Click
        End If
        
    Next 

desta forma funcionou.
Ficou meio feio o isso, mas da pra enganar por enquanto.

vc q manja muito se tiver uma ideia melhor de realizar isso pode me passar?

 
Postado : 13/01/2017 8:44 am