essa aplicação aqui me possibilita rodar múltiplas automações simultaneamente além de gerenciar e me entregar via pi qualquer tipo de navegador eu conecto diretamente utilizando o celenio e consigo acompanhar em tempo real todo o processo que é o minha automação tá fazendo por essa interface gráfica consigo até controlar manualmente o navegador da minha automação e hoje eu vou te mostrar como eu saí de simples automações rodando na minha máquina para uma estratégia bem mais robusta e profissional que consegue gerenciar todos os navegadores sem eu precisar me preocupar com nada e organizando dessa forma foi quando Finalmente consegui fazer dinheiro vendendo as minhas automações em escala Eu até já contei isso aqui em algum outro vídeo mas a minha história com a programação já começou focada em aprender como automatizar tarefas e isso foi muito doido porque desde o começo eu já vi uma oportunidade valiosa em construir automações utilizando Python e esse aqui sou eu bem no início dos meus estudos lá em 2019 o cabelo ainda é o mesmo eu assisti a cursos na tela desse celular velho e aplicava tudo num computador que fazia eu passar muita raiva mas nessa época eu não tinha um plano b e todo esse investimento de tempo de aprender a programar tinha que dar certo então foquei todos os meus estudos a aprender ferramentas como Selenium P to Guy Open Pie Excel entre outras e a partir do quinto meso de estudo eu comecei a oferecer o meu trabalho para diferentes áreas como contabilidade administração logística e eu já tinha certeza e também já tinha os conhecimentos que poderia ajudar vários profissionais de diferentes áreas até que entre várias propostas que eu tinha feito uma só teve Resultado positivo e foi assim que eu vendi o meu primeiro conjunto de automações web utilizando celenio e para ser mais específico foram três automações feitas para uma empresa do setor contábil lá do Estado do Pará e já que vocês gostam de ouvir valores de projetos essas três automações Eu vendi pel um valor de R 5. 300 hoje em dia talvez eu cobraria um pouco mais talvez uns 8. 000 e o cliente ficou super feliz e eu mais ainda por ter fechado o meu primeiro projeto e Eu segui criando mais automações para esse mesmo escritório de contabilidade ao longo do ano mas quando essas automações começaram a escalar eu tive muitas dificuldades para seguir dando manutenção em tudo e e eu sozinho já não estava dando conta de atender todos os chamados era mais manutenção do que projetos novos criados e na época quando esse problema começou já tinha vendido muitas automações web que usavam celenio tinha robôs que navegavam em sites do governo outros que baixavam guias de pagamento emissões de notas enfim eram vários e todas essas automações rodavam na máquina da pessoa que as usava ou num computador simples que era usado como servidor que ficava jogado nos fundos da empresa numa sala úmida e eu ali me vi enfrentando problemas de escala muitas vezes essas automações não podiam ser rodadas simultaneamente por causa do navegador aberto ou a pessoa que estava usando não podia mexer no computador Enquanto essa automação rodava além de problemas constantes de travamentos na máquina do cliente e por mais que na grande maioria das vezes eu já utilizasse estratégias que é Rodar em modo headless que é sem interface gráfica sempre foi um problema dos clientes fecharem aquela aba de terminal que aparece quando a automação inicia e eu tenho absoluta certeza que se você cria e vende automações já deve ter se deparado com algum desses problemas que eu expliquei antes e a estrutura que eu usava provavelmente é igual ou bem parecida com a que você utiliza hoje era uma automação com Selenium escrita em Python sendo executada pelo agendador de tarefas do Windows e na grande maioria das vezes o cliente queria ver automação manipulando E clicando o navegador ali e isso era o maior problema porque consumia muitos recursos de uma máquina que já não era tão boa e também ficava mais suscetíveis a falhas caso o cliente clicasse em algo da página ali abrindo algum outro link que a automação não conheça sem falar nas atualizações constantes de navegador isso dava Bastante trabalho e eu fiquei bastante tempo batendo cabeça até que eu descobri uma ferramenta open source que gerencia e escala para mim qualquer qu tipo de navegador que eu queira usar Mas calma deixa eu te explicar melhor pensa no seguinte nós temos aqui a nossa automação com python e essa automação tá rodando na sua máquina e através da biblioteca Selenium pede um navegador via pi pro selenoid que tá instalado em algum servidor por aí tu pode hospedar ele na nuvem se preferir então o selenoide sobe o navegador pra automação que solicitou e ele pode subir vários navegadores para diferentes automações e tudo rodando ao m mesmo tempo Além do mais essa aplicação organiza todos os navegadores nessa interface web Onde eu posso visualizar o que tá sendo feito e até manipular manualmente o navegador que tá sendo executado pelo robô Então agora eu vou te mostrar na prática como você vai subir o selenoide aí na sua máquina então primeiro de tudo a gente precisa ter o docker instalado na nossa máquina é através dele que vamos subir a api do selenoide e também todos os navegadores que vamos usar Então você precisa primeiro ter o docker instalado é só botar docker no Google acessar o primeiro link e baixar o executável e sair instalando é bem simples e para quem não sabe o docker é uma aplicação que sobe um sistema operacional dedicado pro seu projeto nós chamamos isso de containers eu tô Resumindo aqui para não entrar muito em detalhe sobre o docker aqui no vídeo mas no nosso caso a aplicação que vamos subir no docker é o selenoid e caso vocês queiram conteúdo sobre docker é só deixar um comentário aqui embaixo então depois de ter instalado o docker você vai abrir o terminal e vai digitar docker menos menos Version para ver se o docker foi instalado corretamente caso se der ruim na sua instalação tu vai ver a seguinte mensagem de erro aí eu aconselho você refazer o processo ou até reiniciar o PC mas antes olha todo o vídeo agora se você conseguiu instalar o docker Já podemos baixar o repositório que já tá com selenoide tudo configurado eu deixei o link aqui abaixo na descrição você pode usar o Git para obter o projeto ou então baixar o zip clicando no botão de download agora vamos abrir o projeto aqui no vs code para eu explicar o que que tem dentro dele então pessoal já aqui com a nossa tela do vs code aberta o primeiro arquivo que a gente vai analisar É esse aqui que se chama docker compose pemo pon emo é uma extensão de arquivo de configuração então aqui dentro tem a configuração dos nossos contêiners do selenoid né então aqui vai a versão do docker compose que a gente vai querer rodar e aqui são os serviços então cada serviço diferente então aqui eu tenho selenoid ui tenho selenoide aqui também são sistemas operacionais dedicados para subir essa aplicação Tá mas que aplicação é essa é aqui nessa imagem então aeroc selenoid ui é a aplicação que vai subir a interface gráfica do selenoid Então aquela que a gente vai acessar via navegador já essa aqui de baixo é a api do selenoide é que vai receber as requisições do celenio então aqui e aqui é muito simples no imag vai o endereço da onde tá hospedado esse projeto né que no caso é no docker Hub se vocês acessarem docker Hub vão ter todas as imagens prontas já para vocês subirem nesse serviço docker e aqui vai container name as portas que que vão ser expostas para essa aplicação aqui no caso a interface do selenoid aqui também temos questões de time Zone DNS enfim a gente tem também um comando aqui que é o que faz a conexão dessa interface gráfica com a api já que embaixo no serviço de api também temos a mesma coisa só que as portas expostas são diferentes Então a gente vai conectar o nosso ã Selenium por essas portas aqui temos os volumes também que são coisas que estão dentro da nossa máquina que a gente quer passar para dentro desse sistema operacional dedicado eu não vou entrar tanto no detalhe como funciona ã esse arquivo de configuração Como funciona uma configuração para subir no docker por isso que eu deixei já esse projeto pronto para vocês então o docker compose e emo é esse arquivo de configuração já esse outro aqui que tá sendo passado pelos volumes que ele fica dentro do browsers P browsers json Então a gente tem ele aqui ó esse aqui é um arquivo de configuração específico que o selenoide vai identificar Quais são os navegadores válidos que ele tem para oferecer PR as automações né então aqui eu tenho dois navegadores base que eu já deixei configurado que é o nosso Chrome e o nosso Firefox Mas a gente pode usar outros navegadores também acessando lá dockerhub colocando selenoide vocês vão achar outros navegadores como o Opera o Chromium enfim e seguindo aqui no projeto eu deixei um teste escrito em Python então teste.
py que é o que vai fazer toda essa comunicação com o selenoide então a gente precisa importar algumas classes e e aqui a gente vai importar o Web driver Como sempre só que ao invés de usar webdriver pchome ou webdriver Firefox a gente vai usar webdriver P remote e aqui ele vai pedir um Command Executor esse Command Executor vai ser a URL que tá subindo a nossa api do selenoide então aqui ó a api tá sendo exposta na porta 444 e essa pi ela vai subir no nosso local host porque a gente tá subindo aqui na nossa máquina no caso se a gente subisse isso num ec2 na Amazon ou qualquer outra Cloud ele não iria subir no caso como local host aqui teria o host de acesso a essa máquina que seria um IP válido no caso né como aqui a gente tá subindo localmente então a gente consegue acessar ele via local host 2. 4444 que é a nossa porta de acesso onde essa aplicação ela ela tá exposta bar WD bar Hub que é o endp que vai receber essa requisição do celenium já que nas opções a gente precisa passar algumas informações tá o celenium precisa saber de algumas coisas por exemplo Qual que é o nome do browser que ele vai se conectar né então se a gente entrar aqui de novo no browsers json a gente vai ver que o browser é Chrome Então a gente botou ele como nome de Chrome ou Firefox aí eu posso ter diferentes versões desse mesmo browser no caso aqui a defo ela teste e eu posso ter outras versões aqui dentro desse mesmo navegador é só a gente duplicar essa camada e mudar essa nomenclatura aqui desse Jon então voltando aqui pro nosso teste eu preciso passar o browser name que assim eu monto via options então aqui eu preciso passar o nome do browser do qual ele vai se conectar e a versão né no caso é a única que tem lá então a gente colocou aqui também podemos passar mais opções pro selenoide né como ã o vnc o vnc é a possibilidade de eu conseguir manipular e também enxergar esse navegador aberto em tempo real eu posso passar como false aqui ele vai continuar gerenciando os navegadores para mim mas ele não vai mostrar uma interface gráfica essa é uma opção para servidores que tem menos desempenho que tem menos recursos a oferecer então a gente configurando o nosso driver com o webdriver Remote passando o nosso comando Executor e as nossas opções que definimos aqui em cima aí daqui paraa frente é tudo igual a mesma coisa como se a gente tivesse rodando ã via Manager ou então via web driver rodando na máquina já aqui em cima nós temos a onde eu deixei dois scripts para conseguir subir essa aplicação de forma mais fácil tá então o Linux para usuários Linux e o windows para o Windows como eu tô usando Linux eu vou rodar esse script aqui tá então aqui no terminal aberto eu vou fazer ponto barra Bin bar build Linux e dou enter então agora a gente espera a nossa aplicação subir aqui então pessoal o selenoid já terminou de subir aqui então a gente vai lá no nosso navegador agora e vai digitar local host 2.