Beschrijving
Gebruik de chrome.devtools.recorder API om het Recorder-deelvenster in DevTools aan te passen.
De devtools.recorder API is een previewfunctie waarmee je het deelvenster Recorder in Chrome DevTools kunt uitbreiden.
Ga naar Overzicht van DevTools API's voor een algemene inleiding over het gebruik van API's voor ontwikkelaarstools.
Beschikbaarheid
Concepten en gebruik
De exportfunctie aanpassen
Gebruik de functie registerRecorderExtensionPlugin om een extensieplug-in te registreren. Deze functie vereist een plug-inexemplaar, een name en een mediaType als parameters. De plug-inexemplaar moet 2 methoden implementeren: stringify en stringifyStep.
De name die door de extensie wordt geleverd, wordt getoond in het menu Exporteren in het deelvenster Recorder.
Afhankelijk van de exportcontext roept het deelvenster Recorder een van de 2 functies aan als de gebruiker op de exportoptie van de extensie klikt:
stringifydie een opname van een hele gebruikersstroom krijgtstringifyStepdie één opgenomen stap krijgt
Met de parameter mediaType kan de extensie het type uitvoer specificeren dat deze genereert met de functies stringify en stringifyStep. Bijvoorbeeld application/javascript als het resultaat een JavaScript-programma is.
De knop voor opnieuw afspelen aanpassen
Gebruik de functie registerRecorderExtensionPlugin om de knop Opnieuw afspelen in de Recorder aan te passen. De plug-in moet de methode replay implementeren om de aanpassing door te voeren.
Als de methode wordt gedetecteerd, verschijnt er een knop voor opnieuw afspelen in de Recorder.
Als je op de knop klikt, wordt het huidige opnameobject als eerste argument doorgegeven aan de methode replay.
Op dit moment kan de extensie een RecorderView tonen om de herhaling te verwerken of andere extensie-API's gebruiken om het herhalingsverzoek te verwerken. Roep browser.devtools.recorder.createView aan om een nieuwe RecorderView te maken.
Voorbeelden
Exportplug-in
De volgende code implementeert een extensieplug-in die een opname omzet in een tekenreeks met JSON.stringify:
class MyPlugin {
stringify(recording) {
return Promise.resolve(JSON.stringify(recording));
}
stringifyStep(step) {
return Promise.resolve(JSON.stringify(step));
}
}
browser.devtools.recorder.registerRecorderExtensionPlugin(
new MyPlugin(),
/*name=*/'MyPlugin',
/*mediaType=*/'application/json'
);
Replay-plug-in
De volgende code implementeert een extensieplug-in die een dummy Recorder-weergave maakt en deze toont bij een herhalingsverzoek:
const view = await browser.devtools.recorder.createView(
/* name= */ 'ExtensionName',
/* pagePath= */ 'Replay.html'
);
let latestRecording;
view.onShown.addListener(() => {
// Recorder has shown the view. Send additional data to the view if needed.
browser.runtime.sendMessage(JSON.stringify(latestRecording));
});
view.onHidden.addListener(() => {
// Recorder has hidden the view.
});
export class RecorderPlugin {
replay(recording) {
// Share the data with the view.
latestRecording = recording;
// Request to show the view.
view.show();
}
}
browser.devtools.recorder.registerRecorderExtensionPlugin(
new RecorderPlugin(),
/* name=*/ 'CoffeeTest'
);
Je vindt een compleet voorbeeld van een extensie op GitHub.
Typen
RecorderExtensionPlugin
Een plug-ininterface die het Recorder-deelvenster aanroept om het Recorder-deelvenster aan te passen.
Eigenschappen
-
opnieuw afspelen
ongeldig
Chrome 112+ -browser.* sinds Chrome 152Hiermee kan de extensie aangepaste herhalingsfunctionaliteit implementeren.
De functie
replayziet er zo uit:(recording: object) => {...}
-
op
object
Een opname van de gebruikersinteractie met de pagina. Dit moet overeenkomen met het opnameschema van Puppeteer.
-
-
stringify
ongeldig
Zet een opname van de indeling van het deelvenster Recorder om in een tekenreeks.
De functie
stringifyziet er zo uit:(recording: object) => {...}
-
op
object
Een opname van de gebruikersinteractie met de pagina. Dit moet overeenkomen met het opnameschema van Puppeteer.
-
-
stringifyStep
ongeldig
Zet een stap van de opname van de indeling van het Recorder-deelvenster om in een tekenreeks.
De functie
stringifyStepziet er zo uit:(step: object) => {...}
-
stap
object
Een stap van de opname van een gebruikersinteractie met de pagina. Dit moet overeenkomen met het stapschema van Puppeteer.
-
RecorderView
Stelt een weergave voor die is gemaakt door een extensie om te worden ingesloten in het Recorder-deelvenster.
Eigenschappen
-
onHidden
Event<functionvoidvoid>
Wordt geactiveerd als de weergave is verborgen.
De functie
onHidden.addListenerziet er zo uit:(callback: function) => {...}
-
callback
functie
De parameter
callbackziet er zo uit:() => void
-
-
onShown
Event<functionvoidvoid>
Wordt geactiveerd als de weergave wordt getoond.
De functie
onShown.addListenerziet er zo uit:(callback: function) => {...}
-
callback
functie
De parameter
callbackziet er zo uit:() => void
-
-
weergeven
ongeldig
Geeft aan dat de extensie deze weergave wil tonen in het Recorder-deelvenster.
De functie
showziet er zo uit:() => {...}
Methoden
createView()
browser.devtools.recorder.createView(
title: string,
pagePath: string,
): RecorderView
Maakt een weergave die de herhaling kan verwerken. Deze weergave wordt ingesloten in het Recorder-deelvenster.
Parameters
-
titel
tekenreeks
Titel die naast het extensie-icoon wordt getoond in de werkbalk van de tools voor ontwikkelaars.
-
pagePath
tekenreeks
Pad van de HTML-pagina van het deelvenster ten opzichte van de extensiemap.
Retourzendingen
registerRecorderExtensionPlugin()
browser.devtools.recorder.registerRecorderExtensionPlugin(
plugin: RecorderExtensionPlugin,
name: string,
mediaType: string,
): void
Registreert een plug-in voor de Recorder-extensie.
Parameters
-
plug-in
Een instantie die de RecorderExtensionPlugin-interface implementeert.
-
name
tekenreeks
De naam van de plug-in.
-
mediaType
tekenreeks
Het mediatype van de tekenreekscontent die de plug-in produceert.