Referência da API
Bem-vindo à Referência da API do Pydoll! Esta seção fornece documentação abrangente para todas as classes, métodos e funções disponíveis na biblioteca Pydoll.
Visão Geral
O Pydoll está organizado em vários módulos chave, cada um servindo a um propósito específico na automação do navegador:
Módulo Browser (Navegador)
O módulo browser contém classes para gerenciar instâncias de navegador e seu ciclo de vida.
- Chrome - Automação do navegador Chrome
- Edge - Automação do navegador Microsoft Edge
- Options - Opções de configuração do navegador
- Tab - Gerenciamento e interação de abas
- Requests - Requisições HTTP dentro do contexto do navegador
- Managers - Gerenciadores do ciclo de vida do navegador
Módulo Elements (Elementos)
O módulo elements fornece classes para interagir com elementos de página web.
- WebElement - Interação com elemento individual
- Mixins - Funcionalidade de elemento reutilizável
Módulo Connection (Conexão)
O módulo connection lida com a comunicação com o navegador através do Chrome DevTools Protocol.
- Connection Handler - Gerenciamento de conexão WebSocket
- Managers - Gerenciadores do ciclo de vida da conexão
Módulo Commands (Comandos)
O módulo commands fornece implementações de comando de baixo nível do Chrome DevTools Protocol.
- Visão Geral dos Comandos - Implementações de comando CDP por domínio
Módulo Protocol (Protocolo)
O módulo protocol implementa os comandos e eventos do Chrome DevTools Protocol.
- Tipos Base - Tipos base para o Chrome DevTools Protocol
- Browser - Comandos e eventos do domínio Browser
- DOM - Comandos e eventos do domínio DOM
- Fetch - Comandos e eventos do domínio Fetch
- Input - Comandos e eventos do domínio Input
- Network - Comandos e eventos do domínio Network
- Page - Comandos e eventos do domínio Page
- Runtime - Comandos e eventos do domínio Runtime
- Storage - Comandos e eventos do domínio Storage
- Target - Comandos e eventos do domínio Target
Módulo Core (Núcleo)
O módulo core contém utilitários fundamentais, constantes e exceções.
- Constants - Constantes e enums da biblioteca
- Exceptions - Classes de exceção customizadas
- Utils - Funções de utilidade
Navegação Rápida
Classes Mais Comuns
| Classe | Propósito | Módulo |
|---|---|---|
Chrome |
Automação do navegador Chrome | pydoll.browser.chromium |
Edge |
Automação do navegador Edge | pydoll.browser.chromium |
Tab |
Interação e controle de abas | pydoll.browser.tab |
WebElement |
Interação com elementos | pydoll.elements.web_element |
ChromiumOptions |
Configuração do navegador | pydoll.browser.options |
Enums e Constantes Chave
| Nome | Propósito | Módulo |
|---|---|---|
By |
Estratégias de seletor de elemento | pydoll.constants |
Key |
Constantes de tecla do teclado | pydoll.constants |
PermissionType |
Tipos de permissão do navegador | pydoll.constants |
Exceções Comuns
| Exceção | Quando Levantada | Módulo |
|---|---|---|
ElementNotFound |
Elemento não encontrado no DOM | pydoll.exceptions |
WaitElementTimeout |
Timeout de espera de elemento | pydoll.exceptions |
BrowserNotStarted |
Navegador não iniciado | pydoll.exceptions |
Padrões de Uso
Automação Básica do Navegador
from pydoll.browser.chromium import Chrome
async with Chrome() as browser:
tab = await browser.start()
await tab.go_to("https://example.com")
element = await tab.find(id="my-element")
await element.click()
Localização de Elementos
# Usando o método moderno find()
element = await tab.find(id="username")
element = await tab.find(tag_name="button", class_name="submit")
# Usando seletores CSS ou XPath
element = await tab.query("#username")
element = await tab.query("//button[@class='submit']")
Manipulação de Eventos
Suporte a Tipagem e Assincronismo
Dicas de Tipo (Type Hints)
O Pydoll é totalmente tipado e fornece dicas de tipo abrangentes para melhor suporte da IDE e segurança de código. Todas as APIs públicas incluem anotações de tipo adequadas.
from typing import Optional, List
from pydoll.elements.web_element import WebElement
# Métodos retornam objetos tipados corretamente
element: Optional[WebElement] = await tab.find(id="test", raise_exc=False)
elements: List[WebElement] = await tab.find(class_name="item", find_all=True)
Suporte Async/Await
Todas as operações do Pydoll são assíncronas e devem ser usadas com async/await:
import asyncio
async def main():
# Todas as operações do Pydoll são assíncronas
async with Chrome() as browser:
tab = await browser.start()
await tab.go_to("https://example.com")
asyncio.run(main())
Navegue pelas seções abaixo para explorar a documentação completa da API para cada módulo.