Nesse script, o único objetivo é avançar pela tela para emitir a certidão.
Não faço por 2 motivos: 1 já tentei muito e não consegui 2 tô precisando com uma certa urgência...
Sem problemas em usar uma api paga. Se vc tiver costume de usar alguma, será bem-vinda mesmo que paga.
Tá com DrissionPage, mas pode ser tbm ou no Selenium ou no Playwright... Importante é conseguir avançar
import time
from DrissionPage import ChromiumPage, ChromiumOptions
def main():
print("? Iniciando cnj cpf")
# --- config perfil do chrome (usuário do robô) ---
user_dir = r"c:\sei4_teste" # ajuste se quiser outro diretório de perfil
co = chromiumoptions().set_paths(
browser_path=r"C:\Program Files\Google\Chrome\Application\
chrome.exe",
user_data_path=user_dir
)
# Se houver vários perfis dentro de user_data_path, descomente e ajuste:
# co.set_argument('--profile-directory=Default')
# Recomendações úteis:
co.set_argument('--start-maximized')
co.auto_port() # ajuda a evitar conflito de porta
nav = Chromiumpage(co)
# --- cpf único (sem lista) ---
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
# atenção: coloque aqui um cpf que você possa usar (autorizado).
# Exemplo de placeholder/dummy: "000.000.000-00"
CPF_PLACEHOLDER = "36410005059"
# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
try:
# Abre a página do CNJ
nav.get("https://www.cnj.jus.br/improbidade_adm/consultar_requerido.php")
# Seleciona "Pessoa Física"
pessoa_fisica_radio =
nav.ele('xpath://*[@id="tipoPessoaFisica"]', timeout=15)
pessoa_fisica_radio.click()
print("[CNJ] Selecionou Pessoa Física")
time.sleep(1.5)
# Campo CPF
entrada =
nav.ele('xpath://*[@id="num_cpf_cnpj"]', timeout=15)
if not entrada:
print("[CNJ] Campo CPF não encontrado.")
Return
# Preenche CPF
try:
entrada.clear()
except Exception:
pass
entrada.input(CPF_PLACEHOLDER)
print(f"[CNJ] Preencheu CPF com {CPF_PLACEHOLDER}")
try:
btn =
nav.ele('xpath://*[@id="btnPesquisarRequerido"]', timeout=5)
if btn:
btn.click()
print("[CNJ] Clicou em Consultar.")
Except Exception:
pass
# Aguarda um pouco para resultado carregar (ajuste conforme a página responder)
finally:
# Se quiser manter o navegador aberto para inspeção, comente o close():
#
nav.close()
pass
if __name__ == "__main__":
main()
Prazo de Entrega: Não estabelecido