fix: forward --exact flag to Playwright for role, label, and placeholder locators (#402) (#403)

Summary

- The `--exact` flag on `find role`, `find label`, and `find placeholder` was accepted by the CLI but silently dropped by the server. The Zod validation schema, TypeScript types, and action handlers all lacked the `exact` field, so it was stripped before reaching Playwright's `getByRole`, `getByLabel`, and `getByPlaceholder` calls.
- Added `exact` to the schema, types, and handler for all three locators so the flag is forwarded to Playwright as intended.
- Added tests confirming `exact: true` survives protocol parsing for `getbyrole`, `getbylabel`, and `getbyplaceholder`.

Fixes #402
This commit is contained in:
Chris Tate
2026-02-10 09:07:47 -06:00
committed by GitHub
parent 8e5ead85c8
commit cd4473aa64
4 changed files with 60 additions and 3 deletions
+3
View File
@@ -108,6 +108,7 @@ export interface GetByRoleCommand extends BaseCommand {
action: 'getbyrole';
role: string;
name?: string;
exact?: boolean;
subaction: 'click' | 'fill' | 'check' | 'hover';
value?: string;
}
@@ -122,6 +123,7 @@ export interface GetByTextCommand extends BaseCommand {
export interface GetByLabelCommand extends BaseCommand {
action: 'getbylabel';
label: string;
exact?: boolean;
subaction: 'click' | 'fill' | 'check';
value?: string;
}
@@ -129,6 +131,7 @@ export interface GetByLabelCommand extends BaseCommand {
export interface GetByPlaceholderCommand extends BaseCommand {
action: 'getbyplaceholder';
placeholder: string;
exact?: boolean;
subaction: 'click' | 'fill';
value?: string;
}