CDriv — API Reference¶
cdriv.CDriv
¶
Controla Chromium via ChromeDriver usando o WebDriver Protocol (HTTP). Funciona no Termux (aarch64/android) onde Playwright e Selenium falham.
Functions¶
add_cookie(name, value, domain=None, path='/')
¶
Adiciona um cookie à sessão.
back()
¶
Volta para a página anterior.
click(selector)
¶
Clica em um elemento da página via seletor CSS. Exemplo: scraper.click("button#enviar")
close()
¶
Fecha a sessão atual (fecha o navegador).
delete_all_cookies()
¶
Remove todos os cookies da sessão.
execute_script(script, *args)
¶
Executa JavaScript na página e retorna o resultado. Exemplos: scraper.execute_script("return document.title") scraper.execute_script("return document.querySelector('.x').innerText") scraper.execute_script("return localStorage.getItem('token')") scraper.execute_script("document.querySelector('#btn').click()")
fill(selector, value)
¶
Preenche um campo de input com um valor. Exemplo: scraper.fill("input#email", "teste@email.com")
forward()
¶
Avança para a próxima página.
get_all_attributes(selector, attr)
¶
Retorna uma lista com valores de atributos de múltiplos elementos. Exemplo: links = scraper.get_all_attributes("a", "href")
get_all_texts(selector)
¶
Retorna uma lista com o texto de todos os elementos que correspondem ao seletor. Exemplo: itens = scraper.get_all_texts("li.item")
get_attribute(selector, attr)
¶
Retorna o valor de um atributo de um elemento. Exemplo: href = scraper.get_attribute("a.link", "href")
get_cookies()
¶
Retorna a lista bruta de cookies (cada um é um dict). Uso: cookies = scraper.get_cookies() for c in cookies: print(c['name'], c['value'])
get_cookies_dict()
¶
Retorna cookies como dict {nome: valor} para usar com requests. Uso: session = requests.Session() session.cookies.update(scraper.get_cookies_dict())
get_current_url()
¶
Retorna a URL atual da página.
get_local_storage(key=None)
¶
Retorna valor do localStorage. Se key=None, retorna tudo.
get_page_source()
¶
Retorna o HTML completo da página.
get_session_storage(key=None)
¶
Retorna valor do sessionStorage. Se key=None, retorna tudo.
get_text(selector)
¶
Retorna o texto visível de um elemento. Exemplo: texto = scraper.get_text("h1.titulo")
get_title()
¶
Retorna o título da página.
get_user_agent()
¶
Retorna o User-Agent do navegador.
get_viewport_size()
¶
Retorna o tamanho da viewport como dict {width, height}.
navigate(url)
¶
Navega para uma URL. Aguarda o carregamento completo.
new_session()
¶
Cria uma nova sessão (abre uma janela do Chromium). Retorna o sessionId.
refresh()
¶
Recarrega a página atual.
restart()
¶
Reinicia o ChromeDriver (stop + start).
screenshot(filepath='screenshot.png')
¶
Tira um screenshot da página e salva em arquivo. Exemplo: scraper.screenshot("pagina.png")
screenshot_as_base64()
¶
Retorna o screenshot como string base64 (sem salvar).
scroll_to(x=0, y=0)
¶
Rola a página para uma posição.
scroll_to_bottom()
¶
Rola até o final da página.
scroll_to_element(selector)
¶
Rola até que o elemento fique visível.
select_option(selector, value)
¶
Seleciona uma opção em um
set_local_storage(key, value)
¶
Define um valor no localStorage.
sleep(seconds)
¶
Pausa por N segundos (igual time.sleep, mas mais legível no fluxo).
start()
¶
Inicia o ChromeDriver como processo externo.
stop()
¶
Para o processo do ChromeDriver.
wait_for_element(selector, timeout=10, interval=0.3)
¶
Aguarda até que um elemento apareça no DOM. Retorna True se encontrou, False se timeout.
Exemplo
if scraper.wait_for_element("#carregou", timeout=15): print("Elemento encontrado!")
wait_for_navigation(timeout=10)
¶
Aguarda a página terminar de carregar (readyState === 'complete').
wait_for_text(text, timeout=10, interval=0.5)
¶
Aguarda até que um texto apareça na página.