Public Sub AAAAAAAAAAAA2222()
Dim selenium As New SeleniumWrapper.WebDriver
selenium.Start "chrome", "http://cvmweb.cvm.gov.br/"
selenium.Open "/SWB/Sistemas/SCW/CPublica/CiaAb/FormBuscaCiaAb.aspx?TipoConsult=c"
selenium.Type "id=txtCNPJNome", "EZ TEC"
selenium.clickAndWait "id=btnContinuar"
selenium.clickAndWait "id=dlCiasCdCVM__ctl1_Linkbutton9"
selenium.clickAndWait "link=Valores Mobiliários negociados e detidos (art. 11 da Instr. CVM nº 358)"
'selenium.clickAndWait "link=Download"
'selenium.clickAndWait "xpath=(//a[contains(text(),'Download')])[2]"
'selenium.clickAndWait "xpath=(//a[contains(text(),'Download')])[3]"
Dim tbDados As SeleniumWrapper.WebElementCollection
Dim iCell, iTotal As Integer
Set tbDados = selenium.findElementsByXPath("//td")
iTotal = tbDados.Count - 1
For iCell = 0 To iTotal
ajud = Left(tbDados.Item(iCell).Text, 10)
If Left(tbDados.Item(iCell).Text, 10) = "11/04/2016" Then
tbDados.Item(iCell - 6).findElementByTagName("a").Click
End If
Next iCell
selenium.stop
End Sub
------
Boa! Ajudou d+ !! Fiz uma pequena modificação no codigo - acho que pra mim funciona melhor olhar o dia que a data de entrega foi feito e fazer o download se a data for igual a uma determinada. Ta funcionando perfeitamente.
A ultima coisa agora pra fechar com chave de ouro! Confesso que já estou até um pouco envergonhado, mas procurei um bom tempo e não achei haha
Esse arquivo que foi baixado preciso salvar em uma pasta especifica com um nome especifico (provavelmente seria o nome da empresa + horario de entrega numa nova pasta na rede nomeada pelo nome da empresa e dia). Tentei gravar a macro via Selenium IDE mas no Firefox não apareceu a opção de 'Salvar como' dai nao vi o codigo.
Tem alguma maneira de fazer isso?
Obrigado, voce não faz ideia do quanto me ajudou! Adquiri uma nova habilidade que vai ser super util aqui
abraços
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Clicar em botão na web - nao funciona [RESOLVIDO]
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Clicar em botão na web - nao funciona
Bobadilha, bom dia.
Bom saber que teu projeto tem evoluído. Fico feliz em poder ajudar.
Bem, sobre esse seu último requisito, não tive tempo de testar, mas pelo que vi, acredito que o código existente no link abaixo pode ajudá-lo a definir o local e o nome de download. Segue link:
- VBA: A better solution required for downloading multiple files.
Tente adaptar esse código e, caso tenha dificuldades, entre em contato.
Forte abraço e excelente final de semana.
Bom saber que teu projeto tem evoluído. Fico feliz em poder ajudar.
Bem, sobre esse seu último requisito, não tive tempo de testar, mas pelo que vi, acredito que o código existente no link abaixo pode ajudá-lo a definir o local e o nome de download. Segue link:
- VBA: A better solution required for downloading multiple files.
Tente adaptar esse código e, caso tenha dificuldades, entre em contato.
Forte abraço e excelente final de semana.
Re: Clicar em botão na web - nao funciona
Public Sub AAAAAAAAAAAA2222()
Dim selenium As New SeleniumWrapper.WebDriver
selenium.Start "chrome", "http://cvmweb.cvm.gov.br/"
selenium.Open "/SWB/Sistemas/SCW/CPublica/CiaAb/FormBuscaCiaAb.aspx?TipoConsult=c"
selenium.Type "id=txtCNPJNome", "EZ TEC"
selenium.clickAndWait "id=btnContinuar"
selenium.clickAndWait "id=dlCiasCdCVM__ctl1_Linkbutton9"
selenium.clickAndWait "link=Valores Mobiliários negociados e detidos (art. 11 da Instr. CVM nº 358)"
'selenium.clickAndWait "link=Download"
'selenium.clickAndWait "xpath=(//a[contains(text(),'Download')])[2]"
'selenium.clickAndWait "xpath=(//a[contains(text(),'Download')])[3]"
Dim tbDados As SeleniumWrapper.WebElementCollection
Dim iCell, iTotal As Integer
Set tbDados = selenium.findElementsByXPath("//td")
iTotal = tbDados.Count - 1
For iCell = 0 To iTotal
ajud = Left(tbDados.Item(iCell).Text, 10)
If Left(tbDados.Item(iCell).Text, 10) = "11/04/2016" Then
tbDados.Item(iCell - 6).findElementByTagName("a").Click
End If
Next iCell
Dim arqSys As FileSystemObject
Dim objArq As File
Dim minhaPasta
Dim nomeArq As String
Dim dataArq As Date
Const Diret As String = "C:\Users\abobadilha\Downloads\"
Set arqSys = New FileSystemObject
Set minhaPasta = arqSys.GetFolder(Diret)
dataArq = DateSerial(1900, 1, 1)
For Each objArq In minhaPasta.Files
If objArq.DateLastModified > dataArq Then
dataArq = objArq.DateLastModified
nomeArq = objArq.Name
End If
Next objArq
a = nomeArq
Set arqSys = Nothing
Set minhaPasta = Nothing
abc = Diret & a
direto = "G:\Bobadilha\" & a
FileCopy abc, direto
selenium.stop
-----------
Doutor, vi seu link e confesso que foi um pouco demais pra mim, não obtive muito sucesso em adaptar. Busquei uma alternativa que resolveu pra mim. Uma macro que identifica o arquivo mais recente no diretorio e copia ele para outra pasta no sistema. Fechou, tenho tudo o que preciso ! Muito obrigado ! Colei o codigo acima pra caso alguem precise no futuro.
Muito obrigado! Abraços e otimo fim de semana !
Dim selenium As New SeleniumWrapper.WebDriver
selenium.Start "chrome", "http://cvmweb.cvm.gov.br/"
selenium.Open "/SWB/Sistemas/SCW/CPublica/CiaAb/FormBuscaCiaAb.aspx?TipoConsult=c"
selenium.Type "id=txtCNPJNome", "EZ TEC"
selenium.clickAndWait "id=btnContinuar"
selenium.clickAndWait "id=dlCiasCdCVM__ctl1_Linkbutton9"
selenium.clickAndWait "link=Valores Mobiliários negociados e detidos (art. 11 da Instr. CVM nº 358)"
'selenium.clickAndWait "link=Download"
'selenium.clickAndWait "xpath=(//a[contains(text(),'Download')])[2]"
'selenium.clickAndWait "xpath=(//a[contains(text(),'Download')])[3]"
Dim tbDados As SeleniumWrapper.WebElementCollection
Dim iCell, iTotal As Integer
Set tbDados = selenium.findElementsByXPath("//td")
iTotal = tbDados.Count - 1
For iCell = 0 To iTotal
ajud = Left(tbDados.Item(iCell).Text, 10)
If Left(tbDados.Item(iCell).Text, 10) = "11/04/2016" Then
tbDados.Item(iCell - 6).findElementByTagName("a").Click
End If
Next iCell
Dim arqSys As FileSystemObject
Dim objArq As File
Dim minhaPasta
Dim nomeArq As String
Dim dataArq As Date
Const Diret As String = "C:\Users\abobadilha\Downloads\"
Set arqSys = New FileSystemObject
Set minhaPasta = arqSys.GetFolder(Diret)
dataArq = DateSerial(1900, 1, 1)
For Each objArq In minhaPasta.Files
If objArq.DateLastModified > dataArq Then
dataArq = objArq.DateLastModified
nomeArq = objArq.Name
End If
Next objArq
a = nomeArq
Set arqSys = Nothing
Set minhaPasta = Nothing
abc = Diret & a
direto = "G:\Bobadilha\" & a
FileCopy abc, direto
selenium.stop
-----------
Doutor, vi seu link e confesso que foi um pouco demais pra mim, não obtive muito sucesso em adaptar. Busquei uma alternativa que resolveu pra mim. Uma macro que identifica o arquivo mais recente no diretorio e copia ele para outra pasta no sistema. Fechou, tenho tudo o que preciso ! Muito obrigado ! Colei o codigo acima pra caso alguem precise no futuro.
Muito obrigado! Abraços e otimo fim de semana !
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Clicar em botão na web - nao funciona
Bobadilha, fantástico.
Bem, acho interessante deixar o link que passei, como base para um caso futuro. Eu mesmo vou usá-lo futuramente, pois vou precisar montar uma rotina para automação de uns dados.
Mas é muito bom saber que foi encontrado uma alternativa para a necessidade.
Bem, pra fecharmos com chave de ouro, confirme a conclusão do tópico, acrescentando um RESOLVIDO no título do tópico.
Excelente final de semana e até a próxima.
Bem, acho interessante deixar o link que passei, como base para um caso futuro. Eu mesmo vou usá-lo futuramente, pois vou precisar montar uma rotina para automação de uns dados.
Mas é muito bom saber que foi encontrado uma alternativa para a necessidade.
Bem, pra fecharmos com chave de ouro, confirme a conclusão do tópico, acrescentando um RESOLVIDO no título do tópico.
Excelente final de semana e até a próxima.