Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I winapp ui comandi e winui-ui-testing la competenza consentono all'agente di intelligenza artificiale di esaminare, interagire e convalidare automaticamente l'interfaccia utente dell'app, descrivendo ciò che vede nel linguaggio naturale, in modo da poter eseguire l'iterazione senza scrivere prima il codice di test harness.
Comandi di ispezione dell'interfaccia utente
L'abilità winui-ui-testing è inclusa nel plugin winui@awesome-copilot. Se il plug-in è stato installato durante l'installazione, non è necessaria alcuna installazione aggiuntiva.
| Comando | Funzionamento |
|---|---|
winapp ui inspect |
Esegue il dump dell'albero di accessibilità dell'app in esecuzione |
winapp ui screenshot |
Acquisisce uno screenshot della finestra dell'app |
winapp ui click <selector> |
Fa clic su un pulsante o seleziona un elemento |
winapp ui invoke <selector> |
Richiama l'azione predefinita in un controllo |
winapp ui search <text> |
Cerca l'albero degli elementi in base al nome o a AutomationId |
winapp ui set-value <selector> <value> |
Imposta il valore di una TextBox o di una ComboBox |
Chiedere all'agente di testare l'app
- Eseguire l'app:
dotnet run - Porre all'agente una domanda in linguaggio naturale, ad esempio:
"Guarda l'app in esecuzione e dimmi se il pulsante Salva è raggiungibile quando il modulo è vuoto".
- L'agente usa
winapp ui inspectewinapp ui screenshotper esaminare l'app e rispondere.
Questo flusso di lavoro ti permette di individuare i problemi — assenza del focus della tastiera, controlli disabilitati, problemi di layout — prima di scrivere anche una sola riga di codice di test.
Scrivere test automatizzati
Dopo aver esplorato l'app in modo interattivo, chiedere all'agente di generare test formali. Usa questo prompt iniziale:
Write an xUnit UI test for my WinUI 3 app that:
1. Launches the app with dotnet run
2. Verifies the main window title is "My App"
3. Clicks the button with AutomationId "SaveButton"
4. Verifies a success message appears
Use the winapp ui commands for element interaction.
I test generati usano winapp ui comandi come livello di interazione, quindi vengono eseguiti senza un framework di automazione interfaccia utente separato.
Impostare AutomationIds nel codice XAML
Per consentire a winapp ui click di individuare gli elementi in modo affidabile, imposta AutomationProperties.AutomationId nel tuo XAML:
<Button AutomationProperties.AutomationId="SaveButton"
Content="Save" />
<TextBox AutomationProperties.AutomationId="TitleInput" />
Chiedi all'agente: "Aggiungi attributi AutomationId a tutti i controlli interattivi in questo codice XAML".
Esegui test in CI
È possibile eseguire winapp ui comandi in un flusso di lavoro GitHub Actions. I test richiedono una sessione grafica; usa un runner Windows con runs-on: windows-latest.
name: UI tests
on: [push, pull_request]
jobs:
ui-test:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
- name: Install winapp CLI
run: winget install --id Microsoft.WinAppCLI --silent --accept-package-agreements --accept-source-agreements --disable-interactivity
- name: Build
run: dotnet build
- name: Run UI tests
run: dotnet test --filter Category=UITest
Note
I winapp ui comandi interagiscono con l'albero di accessibilità in tempo reale di un processo in esecuzione. I test devono avviare l'app come parte della configurazione del test (o in una fase TestInitialize) e chiuderla nella fase di pulizia finale.
Controllare automaticamente l'accessibilità
Il winapp ui inspect comando restituisce l'albero di accessibilità completo, ovvero nomi di elementi, tipi, stati e AutomationId. Chiedere all'agente di esaminarlo per individuare eventuali lacune di accessibilità:
Run "winapp ui inspect" on the running app and identify any issues:
- Controls without accessible names
- Missing keyboard focus order
- Buttons or links that aren't reachable by Tab
Report findings as a prioritized list, most critical first.
Questa richiesta funziona bene come verifica dell'accessibilità di primo passaggio prima di eseguire uno strumento di controllo formale. Per un elenco di controllo completo per l'accessibilità, vedere Panoramica dell'accessibilità per le app Windows.