Visão Geral dos Comandos
O módulo de Comandos (Commands) fornece interfaces de alto nível para interagir com os domínios do Chrome DevTools Protocol (CDP). Cada módulo de comando corresponde a um domínio CDP específico e fornece métodos para executar várias operações do navegador.
Módulos de Comando Disponíveis
Comandos do Navegador (Browser)
- Módulo:
browser_commands.py - Propósito: Operações em nível de navegador e gerenciamento de janelas
- Documentação: Comandos do Navegador
Comandos DOM
- Módulo:
dom_commands.py - Propósito: Manipulação da árvore DOM e operações de elementos
- Documentação: Comandos DOM
Comandos de Entrada (Input)
- Módulo:
input_commands.py - Propósito: Simulação de eventos de entrada (teclado, mouse, toque)
- Documentação: Comandos de Entrada
Comandos de Rede (Network)
- Módulo:
network_commands.py - Propósito: Monitoramento de rede e interceptação de requisições
- Documentação: Comandos de Rede
Comandos de Página (Page)
- Módulo:
page_commands.py - Propósito: Gerenciamento do ciclo de vida da página e navegação
- Documentação: Comandos de Página
Comandos de Tempo de Execução (Runtime)
- Módulo:
runtime_commands.py - Propósito: Execução de JavaScript e gerenciamento de tempo de execução
- Documentação: Comandos de Tempo de Execução
Comandos de Armazenamento (Storage)
- Módulo:
storage_commands.py - Propósito: Acesso ao armazenamento do navegador (cookies, local storage, etc.)
- Documentação: Comandos de Armazenamento
Comandos de Alvo (Target)
- Módulo:
target_commands.py - Propósito: Gerenciamento de alvos (targets) e operações de aba
- Documentação: Comandos de Alvo
Comandos Fetch
- Módulo:
fetch_commands.py - Propósito: Interceptação e modificação de requisições de rede
- Documentação: Comandos Fetch
Padrão de Uso
Os comandos são tipicamente acessados através das instâncias do navegador (browser) ou aba (tab):
from pydoll.browser.chromium import Chrome
# Inicializa o navegador
browser = Chrome()
await browser.start()
# Obtém a aba ativa
tab = await browser.get_active_tab()
# Usa comandos através da aba
await tab.navigate("https://example.com")
element = await tab.find(id="button")
await element.click()
Estrutura dos Comandos
Cada módulo de comando segue um padrão consistente: - Métodos estáticos: Para execução direta de comandos - Dicas de tipo (Type hints): Segurança de tipo (type safety) completa com tipos de protocolo - Tratamento de erros: Tratamento de exceção adequado para erros CDP - Documentação: Docstrings abrangentes com exemplos