Beschrijving
Gebruik de chrome.devtools.recorder API om het Recorder-paneel in DevTools aan te passen.
devtools.recorder API is een previewfunctie waarmee je het Recorder-paneel in Chrome DevTools kunt uitbreiden.
Zie het overzicht van de DevTools API's voor een algemene introductie tot het gebruik van de Developer Tools API's.
Beschikbaarheid
Concepten en gebruik
De exportfunctie aanpassen
Om een extensieplug-in te registreren, gebruikt u de functie ` registerRecorderExtensionPlugin . Deze functie vereist een plug-in-instantie, een name en een ` mediaType als parameters. De plug-in-instantie moet twee methoden implementeren: stringify en stringifyStep .
De name die door de extensie wordt opgegeven, verschijnt in het menu 'Exporteren' in het paneel 'Recorder' .
Afhankelijk van de exportcontext roept het Recorder- paneel, wanneer de gebruiker op de exportoptie van de extensie klikt, een van de twee functies aan:
-
stringifyontvangt een volledige opname van de gebruikersstroom. -
stringifyStepdie een enkele opgenomen stap ontvangt
Met de parameter mediaType kan de extensie specificeren welk type uitvoer wordt gegenereerd met de functies stringify en stringifyStep . Bijvoorbeeld application/javascript als het resultaat een JavaScript-programma is.
De herhaalknop aanpassen
Om de afspeelknop in de Recorder aan te passen, gebruikt u de functie registerRecorderExtensionPlugin . De plugin moet de replay methode implementeren om de aanpassing te laten werken. Als de methode wordt gedetecteerd, verschijnt er een afspeelknop in de Recorder . Wanneer u op de knop klikt, wordt het huidige opnameobject als eerste argument aan de replay methode doorgegeven.
Op dit punt kan de extensie een RecorderView weergeven om de herhaling af te handelen, of andere extensie-API's gebruiken om het herhalingsverzoek te verwerken. Om een nieuwe RecorderView te maken, roept u chrome.devtools.recorder.createView aan.
Voorbeelden
Export-plug-in
De volgende code implementeert een extensieplugin die een opname omzet naar een tekenreeks met behulp van JSON.stringify :
class MyPlugin {
stringify(recording) {
return Promise.resolve(JSON.stringify(recording));
}
stringifyStep(step) {
return Promise.resolve(JSON.stringify(step));
}
}
chrome.devtools.recorder.registerRecorderExtensionPlugin(
new MyPlugin(),
/*name=*/'MyPlugin',
/*mediaType=*/'application/json'
);
Replay-plugin
De volgende code implementeert een extensieplugin die een dummy-recorderweergave creëert en deze weergeeft bij een herhalingsverzoek:
const view = await chrome.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.
chrome.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();
}
}
chrome.devtools.recorder.registerRecorderExtensionPlugin(
new RecorderPlugin(),
/* name=*/ 'CoffeeTest'
);
Een compleet voorbeeld van een extensie is te vinden op GitHub.
Soorten
RecorderExtensionPlugin
Een plugin-interface die het opnamepaneel aanroept om het opnamepaneel aan te passen.
Eigenschappen
- opnieuw afspelen
leegte
Chrome 112+Hiermee kan de extensie aangepaste herhalingsfunctionaliteit implementeren.
De
replayziet er als volgt uit:(recording: object) => {...}
- opname
voorwerp
Een opname van de interactie van de gebruiker met de pagina. Deze moet overeenkomen met het opnameschema van Puppeteer .
- stringify
leegte
Converteert een opname vanuit het formaat van het paneel 'Recorder' naar een tekenreeks.
De
stringifyfunctie ziet er als volgt uit:(recording: object) => {...}
- opname
voorwerp
Een opname van de interactie van de gebruiker met de pagina. Deze moet overeenkomen met het opnameschema van Puppeteer .
- stringifyStep
leegte
Converteert een stap van de opname vanuit het formaat van het opnamepaneel naar een tekenreeks.
De functie
stringifyStepziet er als volgt uit:(step: object) => {...}
- stap
voorwerp
Een stap in de registratie van een gebruikersinteractie met de pagina. Deze stap moet overeenkomen met het stappenschema van Puppeteer .
RecorderView
Dit vertegenwoordigt een weergave die is gemaakt door een extensie en die in het Recorder-paneel kan worden ingesloten.
Eigenschappen
- verborgen
Event<functionvoidvoid>
Wordt geactiveerd wanneer de weergave wordt verborgen.
De functie
onHidden.addListenerziet er als volgt uit:(callback: function) => {...}
- terugbelverzoek
functie
De
callbackparameter ziet er als volgt uit:() => void
- getoond
Event<functionvoidvoid>
Wordt geactiveerd wanneer de weergave wordt getoond.
De functie
onShown.addListenerziet er als volgt uit:(callback: function) => {...}
- terugbelverzoek
functie
De
callbackparameter ziet er als volgt uit:() => void
- show
leegte
Geeft aan dat de extensie deze weergave in het Recorder-paneel wil tonen.
De
showziet er als volgt uit:() => {...}
Methoden
createView()
chrome.devtools.recorder.createView(
title: string,
pagePath: string,
): RecorderView
Hiermee wordt een weergave gemaakt die de herhaling kan verwerken. Deze weergave wordt ingesloten in het opnamepaneel.
Parameters
- titel
snaar
De titel die naast het extensiepictogram in de werkbalk van de ontwikkelaarstools wordt weergegeven.
- paginapad
snaar
Het pad van de HTML-pagina van het paneel, relatief ten opzichte van de extensiemap.
Retourneert
registerRecorderExtensionPlugin()
chrome.devtools.recorder.registerRecorderExtensionPlugin(
plugin: RecorderExtensionPlugin,
name: string,
mediaType: string,
): void
Registreert een Recorder-extensieplugin.
Parameters
- plugin
Een instantie die de RecorderExtensionPlugin-interface implementeert.
- naam
snaar
De naam van de plugin.
- mediaType
snaar
Het mediatype van de tekenreeksinhoud die de plugin produceert.