Pular para o conteúdo
Skillpedia
Testes280 mil · #310

windows-desktop-e2e

Ensina seu agente de IA a desenhar interfaces bonitas e fáceis de usar e testar o código e achar erros antes dos usuários.

O que ela faz

Esta ferramenta ajuda a testar programas de computador feitos para Windows. Ela verifica se os botões, caixas de texto e outras partes do programa funcionam como esperado, usando uma tecnologia chamada UI Automation.

Quando usar

  • ✓Quando você está criando testes para um programa de Windows.
  • ✓Quando seus testes automáticos para programas de Windows estão falhando.
  • ✓Quando você quer tornar um programa de Windows mais fácil de testar.

Exemplo do que pedir para a IA

“Como posso testar se o botão de login do meu programa de Windows funciona?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/affaan-m/ECC/blob/main/skills/windows-desktop-e2e/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/affaan-m/ECC/blob/main/skills/windows-desktop-e2e/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta usa o UI Automation, que é uma parte do Windows, para encontrar e interagir com os elementos visuais do programa. Ela permite que os testes cliquem em botões e digitem texto, como um usuário faria.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add affaan-m/ECC --skill windows-desktop-e2e

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/windows-desktop-e2e/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Testes E2E para Desktop Windows

Testes de ponta a ponta (end-to-end) para aplicações desktop nativas do Windows usando pywinauto, com suporte do Windows UI Automation (UIA). Abrange WPF, WinForms, Win32/MFC e Qt (5.x / 6.x) — com orientações específicas para Qt em uma seção dedicada.

Quando Ativar

  • Escrevendo ou executando testes E2E para uma aplicação desktop nativa do Windows
  • Configurando um conjunto de testes de GUI desktop do zero
  • Diagnosticando testes de automação de desktop instáveis ou falhando
  • Adicionando testabilidade (AutomationId, nomes acessíveis) a uma aplicação existente
  • Integrando E2E de desktop em um pipeline de CI/CD (GitHub Actions windows-latest)

Quando NÃO Usar

  • Aplicações web → use a habilidade e2e-testing (Playwright)
  • Aplicações Electron / CEF / WebView2 → a camada HTML precisa de automação de navegador, não UIA
  • Aplicações mobile → use ferramentas específicas da plataforma (UIAutomator, XCUITest)
  • Testes puramente unitários ou de integração que não precisam de uma GUI em execução

Conceitos Principais

Toda automação de desktop Windows depende do UI Automation (UIA), uma API de acessibilidade integrada ao Windows. Cada framework suportado expõe uma árvore de elementos UIA com propriedades que o Claude pode ler e agir:

Your test (Python)
    └── pywinauto (UIA backend)
        └── Windows UI Automation API   ← built into Windows, framework-agnostic
            └── App's UIA provider      ← each framework ships its own
                └── Running .exe

Qualidade UIA por framework:

Framework AutomationId Confiabilidade Observações
WPF 5/5 Excelente x:Name mapeia diretamente para AutomationId
WinForms 4/5 Bom AccessibleName = AutomationId
UWP / WinUI 3 5/5 Excelente Suporte completo da Microsoft
Qt 6.x 5/5 Excelente Acessibilidade habilitada por padrão; nomes de classe mudam para Qt6*
Qt 5.15+ 4/5 Bom Módulo de Acessibilidade aprimorado
Qt 5.7–5.14 3/5 Razoável Precisa de QT_ACCESSIBILITY=1; objectName manual
Win32 / MFC 3/5 Razoável IDs de controle acessíveis; correspondência de texto comum

Configuração e Pré-requisitos

# Python 3.8+, Windows only
pip install pywinauto pytest pytest-html Pillow pytest-timeout
# Optional: screen recording
# Install ffmpeg and add to PATH: https://ffmpeg.org/download.html

Verifique se o UIA é alcançável:

from pywinauto import Desktop
Desktop(backend="uia").windows()  # lists all top-level windows

Instale o Accessibility Insights for Windows (gratuito, da Microsoft) — seu equivalente ao DevTools para inspecionar a árvore de elementos UIA antes de escrever qualquer teste.

Configuração de Testabilidade (por Framework)

A coisa mais impactante que você pode fazer é dar a cada controle interativo um AutomationId estável antes de escrever os testes.

WPF

<!-- XAML: x:Name becomes AutomationId automatically -->
<TextBox x:Name="usernameInput" />
<PasswordBox x:Name="passwordInput" />
<Button x:Name="btnLogin" Content="Login" />
<TextBlock x:Name="lblError" />

WinForms

// Set in designer or code
usernameInput.AccessibleName = "usernameInput";
passwordInput.AccessibleName = "passwordInput";
btnLogin.AccessibleName = "btnLogin";
lblError.AccessibleName = "lblError";

Win32 / MFC

// Control resource IDs in .rc file are exposed as AutomationId strings
// IDC_EDIT_USERNAME -> AutomationId "1001"
// Prefer SetWindowText for Name; add IAccessible for richer support

Qt — veja a seção dedicada abaixo


Page Object Model

tests/
├── conftest.py          # app launch fixture, failure screenshot
├── pytest.ini
├── config.py
├── pages/
│   ├── __init__.py      # required for imports
│   ├── base_page.py     # locators, wait, screenshot helpers
│   ├── login_page.py
│   └── main_page.py
├── tests/
│   ├── __init__.py
│   ├── test_login.py
│   └── test_main_flow.py
└── artifacts/           # screenshots, videos, logs

base_page.py

import os, time
from pywinauto import Desktop
from config import ACTION_TIMEOUT, ARTIFACT_DIR

class BasePage:
    def __init__(self, window):
        self.window = window

    # --- Localizadores (ordem de prioridade) ---

    def by_id(self, auto_id, **kw):
        """AutomationId — o mais estável. Use como primeira opção."""
        return self.window.child_window(auto_id=auto_id, **kw)

    def by_name(self, name, **kw):
        """Texto visível / nome acessível."""
        return self.window.child_window(title=name, **kw)

    def by_class(self, cls, index=0, **kw):
        """Classe do controle + índice — frágil, evite se possível."""

…
Perguntas frequentes

Posso usar isso para testar sites?

Não, esta ferramenta é apenas para programas instalados no Windows. Para sites, use ferramentas de teste de navegador.

Preciso ser um programador experiente para usar?

Não, a ferramenta foi feita para ser simples. Ela ajuda a automatizar tarefas de teste que antes exigiriam muito conhecimento técnico.

O que é 'UI Automation'?

É uma tecnologia do Windows que permite que programas (e ferramentas de teste) entendam e interajam com os elementos visuais de outros programas, como botões e caixas de texto.

Detalhes

Descrição original do autor

E2E testing for Windows native desktop apps (WPF, WinForms, Win32/MFC, Qt) using pywinauto and Windows UI Automation. Use when writing E2E tests for a Windows native desktop app with pywinauto or UI Automation.

repo: affaan-m/ECC

Popularidade

Estrelas no GitHub
280 mil
Posição no ranking
#310
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas