Ir ao conteúdo
  • Cadastre-se

Python Automação com Python e Selenium


Ir à solução Resolvido por Swalls,

Posts recomendados

Salve pessoal, estou tentando fazer uma automação e está dando um erro. Quando rodo o código, ele chega a abrir a página mas logo depois ele fecha. Aqui está o código:

import pyautogui
from time import sleep

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome import options
from selenium.webdriver.chrome.options import Options

options = Options()
options.headless = True

navegador = webdriver.Chrome(options=options)

link = "https://eaud.cgu.gov.br/"

navegador.get(url=link)

sleep(1)

Entrar = navegador.find_element(by=By.LINK_TEXT,value="Login Único Gov.Br")
Entrar.click()

Não coloquei o resto do código pois ele nem passe dessa parte, nem chega a executar o click, apenas abre e fecha o site. O erro:
Traceback (most recent call last):
  File "c:\Users\tiago\Área de Trabalho\Python\main.py", line 20, in <module>
    Entrar = navegador.find_element(by=By.LINK_TEXT,value="Login Único Gov.Br")    
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^    
  File "C:\Users\tiago\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 741, in find_element
    return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^       
  File "C:\Users\tiago\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 347, in execute
    self.error_handler.check_response(response)
  File "C:\Users\tiago\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"link text","selector":"Login Único Gov.Br"}
  (Session info: chrome=121.0.6167.140); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Tiago Veloso Olá, tudo bem?
poderia comentar seu código ou mandar um script do que quer que ele faça?
tente o seguinte:
 

from selenium.webdriver.support import expected_conditions as EC

# tem que esperar até que o botão esteja presente na página e seja clicável!
botao = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, "body > div > div > div > div > div.panel.panel-dark.panel-flat > div.panel-body.animated.bounceIn > a.btn.btn-block.btn-green.mt-lg"))
)

# Clique no botão
botao.click()


eu tentei pelo js path
você pode tentar pelo xpath também.

 

 

já tentou ir direto para "eaud.cgu.gov.br/oauth2/authorization/brasil-cidadão" ?

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Swalls Já tentei ir direto, mas sempre leva ao primeiro site.
Nesse código, por exemplo, eu só quero que ele abra o site, porém ele abre e em menos de 1 segundo ele fecha sozinho. O que poderia ser? Chromedriver não está na pasta certa? Algo do tipo?
E muito obrigado por responder
 

import pyautogui
from time import sleep

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome import options
from selenium.webdriver.chrome.options import Options

options = Options()
options.headless = True

navegador = webdriver.Chrome(options=options)

link = "https://eaud.cgu.gov.br/"

navegador.get(url=link)

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Solução

@Tiago Veloso Boa tarde,
No meu fui direto para "eaud.cgu.gov.br/oauth2/authorization/brasil-cidadão" e funciona, ignorando aquela pagina inicial.
ps: o forum está corrigindo o link achando que é erro de português, ignore a acentuação em "cidadão".


o objetivo é só abrir o chrome nessa página? se sim, basta usar esse comando na CLI de uma maquina com chrome instalado:
"chrome https:\\eaud.cgu.gov.br/oauth2/authorization/brasil-cidadão"

com relação a manter aberto.
você tem que verificar a documentação, e procurar como usar o detach (use ctrl + f)
 

você tem que criar um objeto chromeoption do webdrive e edita-lo assim como mostra a documentação.

  • Obrigado 1
  • Amei 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!