chore: send aria snapshot to the debug controller (#33969)

This commit is contained in:
Pavel Feldman 2024-12-12 08:21:53 -08:00 committed by GitHub
parent 0e2b984287
commit 29fd2df124
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 8 additions and 3 deletions

View File

@ -385,6 +385,7 @@ scheme.DebugControllerInitializer = tOptional(tObject({}));
scheme.DebugControllerInspectRequestedEvent = tObject({
selector: tString,
locator: tString,
ariaSnapshot: tString,
});
scheme.DebugControllerSetModeRequestedEvent = tObject({
mode: tString,

View File

@ -228,7 +228,7 @@ class InspectingRecorderApp extends EmptyRecorderApp {
override async elementPicked(elementInfo: ElementInfo): Promise<void> {
const locator: string = asLocator(this._debugController._sdkLanguage, elementInfo.selector);
this._debugController.emit(DebugController.Events.InspectRequested, { selector: elementInfo.selector, locator });
this._debugController.emit(DebugController.Events.InspectRequested, { selector: elementInfo.selector, locator, ariaSnapshot: elementInfo.ariaSnapshot });
}
override async setSources(sources: Source[]): Promise<void> {

View File

@ -32,8 +32,8 @@ export class DebugControllerDispatcher extends Dispatcher<DebugController, chann
eventsHelper.addEventListener(this._object, DebugController.Events.StateChanged, params => {
this._dispatchEvent('stateChanged', params);
}),
eventsHelper.addEventListener(this._object, DebugController.Events.InspectRequested, ({ selector, locator }) => {
this._dispatchEvent('inspectRequested', { selector, locator });
eventsHelper.addEventListener(this._object, DebugController.Events.InspectRequested, ({ selector, locator, ariaSnapshot }) => {
this._dispatchEvent('inspectRequested', { selector, locator, ariaSnapshot });
}),
eventsHelper.addEventListener(this._object, DebugController.Events.SourceChanged, ({ text, header, footer, actions }) => {
this._dispatchEvent('sourceChanged', ({ text, header, footer, actions }));

View File

@ -691,6 +691,7 @@ export interface DebugControllerChannel extends DebugControllerEventTarget, Chan
export type DebugControllerInspectRequestedEvent = {
selector: string,
locator: string,
ariaSnapshot: string,
};
export type DebugControllerSetModeRequestedEvent = {
mode: string,

View File

@ -807,6 +807,7 @@ DebugController:
parameters:
selector: string
locator: string
ariaSnapshot: string
setModeRequested:
parameters:

View File

@ -84,9 +84,11 @@ test('should pick element', async ({ backend, connectedBrowser }) => {
expect(events).toEqual([
{
ariaSnapshot: '- button "Submit"',
selector: 'internal:role=button[name=\"Submit\"i]',
locator: 'getByRole(\'button\', { name: \'Submit\' })',
}, {
ariaSnapshot: '- button "Submit"',
selector: 'internal:role=button[name=\"Submit\"i]',
locator: 'getByRole(\'button\', { name: \'Submit\' })',
},