Ir ao conteúdo

Python Automação com Python e Selenium


Ir à solução Resolvido por Swalls,

Posts recomendados

Postado

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
Postado

@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
Postado

@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
  • Solução
Postado

@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

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!