Vídeo – Excel, atalhos bacanas para autocompletar e acelerar seu trabalho

Os atalhos estão aí para facilitar sua vida. Use e abuse deles!

Acesse também

BLOG ► https://www.tomasvasquez.com.br/blog/
FÓRUM ► https://www.tomasvasquez.com.br/forum/
CURSO ONLINE DE C# ► https://www.tomasvasquez.com.br/cursocsharp

Aqui também!

FACEBOOK ► https://www.facebook.com/tomasvaquezsites
TWITTER ► https://twitter.com/tomamais
GOOGLE+ ► https://plus.google.com/+TomasvasquezBr/

Roteiro, apresentação, edição, etc, etc ► eu mesmo 🙂

Selenium – Configurando download automático e caminho do arquivo

Pois é, o Selenium entrou na minha vida de uma maneira que é difícil até em pensar em fazer algo sem ele… ok, exagerei, mas vocês entenderam o que eu quis dizer.

Fazer download de um arquivo é uma tarefa até básica, mas a princípio não há controle de onde o arquivo vai parar ou qual seu nome, nem se vai aparecer aquela caixa de confirmação. Pois bem, ao menos Chrome, isso é relativamente simples de configurar isso a partir de suas preferências, que via Selenium é chamado de Capabilities ou ChromeOptions. Até onde sei o Firefox também suporta isso, mas o Chrome me pareceu mais flexível.

Para definir isso, utiliza-se o método “SetPreference” do driver, que deve ser configurado antes de iniciar a navegação, ou seja, antes de chamar o Get “http://endereco.do.seu.site”.

O trecho de código abaixo configura o Chrome para:

  1. Ativar o download automático (sem pedir confirmação)
  2. Alterar o caminho de download do arquivo para a mesma pasta do arquivo em execução
Private Sub AbreEConfiguraOChrome()
    Dim driver As New Selenium.ChromeDriver
    driver.SetPreference "download.default_directory", Replace(ThisWorkbook.FullName, ThisWorkbook.name, "")
    driver.SetPreference "download.directory_upgrade", True
    driver.SetPreference "download.prompt_for_download", False
    driver.Get "http://endereco.do.seu.site"
    'aqui começa seu código
End Sub

Simples! Ok, demorou um bocando para eu descobrir isso, mas aí está.

Bom proveito!

Selenium – Obtendo o nome do último arquivo baixado no Chrome 70+

Tem alguns dias postei um artigo muito “louco” sobre Selenium, ShadowRoot e Polymer, longo, controverso e cansativo.

Aqui, farei uso de tudo aquilo para resolver um simples problema. Obter o nome do último arquivo baixado no seu Chrome instanciado via Selenium. Sem complicações, vamos ao código:

'Estou assumindo que a variável driver é do WebDriver de está declarada globalmente
Public Function UltimoDownloadFeito() As String
    Dim shadowRoot As WebElement, _
        downloadsManager As WebElement, _
        downloadsItem As WebElement, _
        name As WebElement
 
    Set driver = New ChromeDriver
    driver.Get "chrome://downloads"
 
    Set downloadsManager = driver.FindElementByTag("downloads-manager")
    Set shadowRoot = driver.ExecuteScript("return arguments[0].shadowRoot", downloadsManager)
    Set downloadsItem = driver.ExecuteScript("return arguments[0].querySelectorAll('downloads-item')[0];", shadowRoot)
    Set shadowRoot = driver.ExecuteScript("return arguments[0].shadowRoot", downloadsItem)
    Set name = shadowRoot.FindElementById("name")
 
    UltimoDownloadFeito = name.Text
End Function

É claro, se você executar essa rotina diretamente, vai receber um erro, já que não haverão itens na lista. Fica como desafio implementar uma lógica para tratar esse erro. Para ver funcionar na íntegra, efetue um download antes. Abaixo faço isso com o Modelo de Cadastro:

Public Function UltimoDownloadFeito() As String
    Dim shadowRoot As WebElement, _
        downloadsManager As WebElement, _
        downloadsItem As WebElement, _
        name As WebElement
 
    Set driver = New ChromeDriver
    'faz o download do arquivo antes
    driver.Get "http://www.tomasvasquez.com.br/downloads/ModeloCadastrov3ListView.zip"
    driver.Get "chrome://downloads"
 
    Set downloadsManager = driver.FindElementByTag("downloads-manager")
    Set shadowRoot = driver.ExecuteScript("return arguments[0].shadowRoot", downloadsManager)
    Set downloadsItem = driver.ExecuteScript("return arguments[0].querySelectorAll('downloads-item')[0];", shadowRoot)
    Set shadowRoot = driver.ExecuteScript("return arguments[0].shadowRoot", downloadsItem)
    Set name = shadowRoot.FindElementById("name")
 
    UltimoDownloadFeito = name.Text
End Function

Bom proveito!

PS: Testei esse código na versão 70 do Chrome. Pode ser que ele funcione em algumas versões anteriores e/ou posteriores, mas não garanto. Teste antes de usar, ok? 🙂

Vídeo – VBA, Conhecendo o Rubberduck – Code Explorer, Todo List, Indent e mais

Rubberduck, o plugin que você ainda vai instalar no seu VBA!

🙂

Peço a todos perdão pelo áudio. Ainda estou me acostumando com este novo computador e com esse microfone maluco. Sim, ainda vou comprar um decente.

Acesse também

BLOG ► https://www.tomasvasquez.com.br/blog/
FÓRUM ► http://www.tomasvasquez.com.br/forum/
CURSO ONLINE DE C# ► http://www.tomasvasquez.com.br/cursocsharp

Aqui também!

FACEBOOK ► https://www.facebook.com/tomasvaquezsites
TWITTER ► https://twitter.com/tomamais
GOOGLE+ ► https://plus.google.com/+TomasvasquezBr/

Roteiro, apresentação, edição, etc, etc ► eu mesmo 🙂

Tecnologia e Programação