Arquivo da tag: Selenium

Selenium VBA – Como extrair dados de frames

Pois é, Selenium, olha ele aqui de novo. Fazer o quê? Nos o amamos! 🙂

Eis mais uma dúvida que assola o pessoal que se aventura a brincar com Selenium e dá de cara com sites pra lá de complicados. E claro, quando aparecem os frames… bem, sorte sua! No vídeo abaixo demonstro como fazer para extrair os dados de um site com frames, no caso, meu antigo site (muita vergonha aqui).

Confira o vídeo e logo abaixo o código utilizado:

Public Sub ObterDadosDoMeuSiteAntigo()
    Dim driver As New ChromeDriver
 
    driver.Get "http://www.tomasvasquez.com.br/_index.htm"
 
    Debug.Print "Frames encontrados no documento pai: " & driver.FindElementsByTag("frame").Count
 
    Call driver.SwitchToFrame("principal")
 
    Debug.Print "Frames encontrados no frame principal: " & driver.FindElementsByTag("frame").Count
 
    Dim itens As WebElements, item As WebElement
    Set itens = driver.FindElementsByTag("li")
 
    Debug.Print "Itens encontrados:"
    For Each item In itens
        Debug.Print item.Text
    Next item
 
    driver.SwitchToDefaultContent
 
    Debug.Print "Frames encontrados no documento pai: " & driver.FindElementsByTag("frame").Count
 
    driver.Quit
End Sub

Extraindo tabelas de páginas Web com o Selenium Basic

E lá vai mais um vídeo tutorial de Selenium Basic, esse que parece ser o mais querido assunto desta comunidade de VBA, e o meu também. 🙂

Em complemento ao vídeo anterior e atendendo a alguns pedidos, aqui mostro como extrair um elemento de tabela de dentro de uma página web, algo que deve cobrir 90% do uso que se faz do Selenium.

Mais detalhes no vídeo:

E claro, o código:

Dim driver As WebDriver
 
Sub ExtrairTabelaDaPagina()
    Set driver = New ChromeDriver
    Dim destino As Range
    Set destino = Range("A1")
 
    driver.Get "https://github.com/florentbr/SeleniumBasic"
 
    Dim tabela As WebElement
 
    Set tabela = driver.FindElementByXPath("//div[@id='js-repo-pjax-container']/div[2]/div/div[6]/table")
 
    If tabela Is Nothing Then
        MsgBox "Elemento não encontrado"
    Else
        tabela.AsTable.ToExcel destino
    End If
 
    driver.Quit
End Sub

Bom proveito!

Vídeo – Migrando para o Selenium VBA

É, o Selenium fez barulho na comunidade do VBA. Pelo menos isso foi o que deu pra sentir, refletido tanto em questões no fórum, como em comentários no youtube e pedidos de serviço.

O fato é que o selenium tem crescido muito enquanto biblioteca e não só para o VBA. Tudo está muito bem explicado numa série de vídeos que gravei, de comentários a tutoriais (links no fim do artigo).

Por fim, como um auxílio para a migração do SeleniumVBA para o SeleniumBasic, explicado no vídeo “Selenium Basic Já”, gravei mais um tutorial com uma pincelada no código utilizando a nova biblioteca, que você confere abaixo:

Abaixo também segue o código utilizado para referência.

Dim driver As WebDriver
 
Sub ConsultaODolar()
    Set driver = New ChromeDriver
 
    driver.Get "http://www.dolarhoje.com"
 
    Dim nacional As WebElement
    Set nacional = driver.FindElementById("nacional")
 
    If nacional Is Nothing Then
        MsgBox "Elemento não encontrado"
    Else
        MsgBox nacional.Value
    End If
 
    driver.Quit
End Sub
 
Sub VaiProGoogle()
    Set driver = New ChromeDriver
 
    driver.Get "http://www.google.com"
    Application.Wait Now + TimeValue("00:00:01")
 
    Dim busca As WebElement, form As WebElement
    Set busca = driver.FindElementById("lst-ib")
    Set form = driver.FindElementById("tsf")
 
    If Not busca Is Nothing Then
        busca.SendKeys InputBox("Sua busca", "Google", "")
        form.Submit
    Else
        MsgBox "Elemento não encontrado"
    End If
End Sub

Bom proveito!

Usando o Selenium VBA para extrair informações da Web
https://www.youtube.com/watch?v=hk-65p2ivvQ&t=47s

Atualizando o ChromeDriver manualmente para o SeleniumBasic
https://www.youtube.com/watch?v=8fFnr-hmTW8

Selenium Basic já!
https://www.youtube.com/watch?v=WLP7QqgS8CA

Outros Links

SeleniumBasic
https://florentbr.github.io/SeleniumBasic/

ChromeDriver
https://sites.google.com/a/chromium.org/chromedriver/

Vídeo – Usando o Selenium VBA para extrair informações da Web


Para quem está ligado aqui no blog, já passou de ser novidade o artigo sobre o Selenium VBA. Bem, como só texto não basta, agora o mesmo artigo (ou tutorial para quem preferir) está em formato de vídeo!

Obviamente, o vídeo possibilita uma dinâmica diferente de apresentação de conteúdo, por isso, explorei ao máximo essa facilidade, que vocês conferem logo abaixo:

Aproveite para se inscrever no canal para saber dos próximos vídeos.

Bom proveito!