Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Polecenia winapp ui oraz funkcja winui-ui-testing umożliwiają agentowi AI automatyczne analizowanie interfejsu użytkownika aplikacji, wchodzenie z nim w interakcję i jego weryfikację, a także opisywanie tego, co widzi, w języku naturalnym, dzięki czemu możesz wprowadzać kolejne zmiany bez konieczności wcześniejszego pisania kodu infrastruktury testowej.
Polecenia inspekcji interfejsu użytkownika
Funkcja winui-ui-testing jest zawarta we wtyczce winui@awesome-copilot. Jeśli wtyczka została zainstalowana podczas instalacji, nie jest wymagana żadna dodatkowa instalacja.
| Command | Do czego służy |
|---|---|
winapp ui inspect |
Wyświetla drzewo dostępności działającej aplikacji |
winapp ui screenshot |
Przechwytuje zrzut ekranu okna aplikacji |
winapp ui click <selector> |
Klika przycisk lub wybiera element |
winapp ui invoke <selector> |
Wywołuje akcję domyślną kontrolki |
winapp ui search <text> |
Wyszukuje drzewo elementów według nazwy lub identyfikatora automationId |
winapp ui set-value <selector> <value> |
Ustawia wartość kontrolki TextBox lub ComboBox |
Poproś agenta o przetestowanie aplikacji
- Uruchom aplikację:
dotnet run - Zadaj agentowi pytanie w języku naturalnym, takie jak:
"Spójrz na działającą aplikację i powiedz mi, czy przycisk Zapisz jest osiągalny, gdy formularz jest pusty".
- Agent używa
winapp ui inspectiwinapp ui screenshot, aby badać aplikację i udzielać odpowiedzi.
Ten przepływ pracy umożliwia przechwycenie problemów — brak fokusu klawiatury, wyłączonych kontrolek, problemy z układem — przed napisaniem pojedynczego wiersza kodu testowego.
Pisanie testów automatycznych
Gdy interaktywnie zapoznasz się z aplikacją, poproś agenta o wygenerowanie formalnych testów. Użyj tego monitu startowego:
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.
Wygenerowane testy używają winapp ui poleceń jako warstwy interakcji, więc są uruchamiane bez oddzielnej struktury automatyzacji interfejsu użytkownika.
Ustaw AutomationIds w kodzie XAML
Aby winapp ui click mogło niezawodnie wskazywać elementy docelowe, ustaw AutomationProperties.AutomationId w kodzie XAML:
<Button AutomationProperties.AutomationId="SaveButton"
Content="Save" />
<TextBox AutomationProperties.AutomationId="TitleInput" />
Zapytaj agenta: "Dodaj atrybuty AutomationId do wszystkich kontrolek interakcyjnych w tym języku XAML".
Uruchom testy w CI
Możesz uruchamiać polecenia winapp ui w przepływie pracy usługi GitHub Actions. Testy wymagają sesji z interfejsem graficznym; użyj runnera systemu Windows z 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
Polecenia winapp ui współdziałają z dynamicznym drzewem ułatwień dostępu uruchomionego procesu. Testy muszą uruchamiać aplikację w ramach konfiguracji testowej (lub w kroku TestInitialize) i zamykać ją w ramach czynności końcowych.
Automatyczne sprawdzanie ułatwień dostępu
Polecenie winapp ui inspect zwraca pełne drzewo ułatwień dostępu — nazwy elementów, typy, stany i identyfikatory AutomationId. Poproś agenta o przejrzenie go pod kątem luk w dostępności:
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.
Ten prompt sprawdza się również jako wstępny przegląd dostępności przed uruchomieniem narzędzia do formalnego audytu. Aby uzyskać pełną listę kontrolną ułatwień dostępu, zobacz Omówienie ułatwień dostępu dla aplikacji Windows.