chrome.devtools.recorder

Mô tả

Sử dụng API chrome.devtools.recorder để tuỳ chỉnh bảng điều khiển Trình ghi trong Công cụ cho nhà phát triển.

devtools.recorder API là một tính năng xem trước cho phép bạn mở rộng bảng điều khiển Trình ghi trong Chrome DevTools.

Hãy xem Tóm tắt về các API của Công cụ cho nhà phát triển để biết thông tin tổng quan về cách sử dụng các API của Công cụ cho nhà phát triển.

Phạm vi cung cấp

Chrome 105 trở lên

Khái niệm và cách sử dụng

Tuỳ chỉnh tính năng xuất

Để đăng ký một trình bổ trợ tiện ích, hãy sử dụng hàm registerRecorderExtensionPlugin. Hàm này yêu cầu một thực thể trình bổ trợ, namemediaType làm tham số. Đối tượng bổ trợ phải triển khai 2 phương thức: stringifystringifyStep.

name do tiện ích cung cấp sẽ xuất hiện trong trình đơn Export (Xuất) trong bảng điều khiển Recorder (Trình ghi).

Tuỳ thuộc vào bối cảnh xuất, khi người dùng nhấp vào lựa chọn xuất do tiện ích cung cấp, bảng điều khiển Trình ghi sẽ gọi một trong hai hàm sau:

Tham số mediaType cho phép tiện ích chỉ định loại đầu ra mà tiện ích tạo bằng các hàm stringifystringifyStep. Ví dụ: application/javascript nếu kết quả là một chương trình JavaScript.

Tuỳ chỉnh nút phát lại

Để tuỳ chỉnh nút phát lại trong Máy ghi âm, hãy dùng hàm registerRecorderExtensionPlugin. Trình bổ trợ phải triển khai phương thức replay để chế độ tuỳ chỉnh có hiệu lực. Nếu phương thức này được phát hiện, nút phát lại sẽ xuất hiện trong Trình ghi. Khi người dùng nhấp vào nút này, đối tượng bản ghi hiện tại sẽ được truyền dưới dạng đối số đầu tiên cho phương thức replay.

Tại thời điểm này, tiện ích có thể hiển thị một RecorderView để xử lý yêu cầu phát lại hoặc sử dụng các API tiện ích khác để xử lý yêu cầu phát lại. Để tạo một RecorderView mới, hãy gọi chrome.devtools.recorder.createView.

Ví dụ

Xuất trình bổ trợ

Đoạn mã sau đây triển khai một trình bổ trợ tiện ích giúp chuyển đổi một bản ghi thành chuỗi bằng 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'
);

Trình bổ trợ phát lại

Đoạn mã sau đây triển khai một trình bổ trợ tiện ích tạo một khung hiển thị Trình ghi ảo và hiển thị khung hiển thị đó theo yêu cầu phát lại:

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'
);

Bạn có thể tìm thấy ví dụ hoàn chỉnh về tiện ích trên GitHub.

Loại

RecorderExtensionPlugin

Một giao diện trình bổ trợ mà bảng điều khiển Máy ghi âm gọi để tuỳ chỉnh bảng điều khiển Máy ghi âm.

Thuộc tính

  • phát lại

    void

    Chrome 112 trở lên

    Cho phép tiện ích triển khai chức năng phát lại tuỳ chỉnh.

    Hàm replay có dạng như sau:

    (recording: object) => {...}

    • đang ghi

      đối tượng

      Bản ghi lại lượt tương tác của người dùng với trang. Điều này phải khớp với sơ đồ ghi của Puppeteer.

  • stringify

    void

    Chuyển đổi bản ghi từ định dạng bảng điều khiển Máy ghi âm thành một chuỗi.

    Hàm stringify có dạng như sau:

    (recording: object) => {...}

    • đang ghi

      đối tượng

      Bản ghi lại lượt tương tác của người dùng với trang. Điều này phải khớp với sơ đồ ghi của Puppeteer.

  • stringifyStep

    void

    Chuyển đổi một bước của bản ghi từ định dạng bảng điều khiển Máy ghi âm thành một chuỗi.

    Hàm stringifyStep có dạng như sau:

    (step: object) => {...}

    • bị xì hơi

      đối tượng

      Một bước trong quá trình ghi lại lượt tương tác của người dùng với trang. Nội dung này phải khớp với giản đồ bước của Puppeteer.

RecorderView

Chrome 112 trở lên

Biểu thị một khung hiển thị do tiện ích tạo ra để được nhúng vào bảng điều khiển Trình ghi.

Thuộc tính

  • onHidden

    Event<functionvoidvoid>

    Được kích hoạt khi khung hiển thị bị ẩn.

    Hàm onHidden.addListener có dạng như sau:

    (callback: function) => {...}

    • callback

      hàm

      Tham số callback có dạng như sau:

      () => void

  • onShown

    Event<functionvoidvoid>

    Được kích hoạt khi khung hiển thị xuất hiện.

    Hàm onShown.addListener có dạng như sau:

    (callback: function) => {...}

    • callback

      hàm

      Tham số callback có dạng như sau:

      () => void

  • hiện (lên)/cho thấy

    void

    Cho biết rằng tiện ích muốn hiển thị chế độ xem này trong bảng điều khiển Trình ghi.

    Hàm show có dạng như sau:

    () => {...}

Phương thức

createView()

Chrome 112 trở lên
chrome.devtools.recorder.createView(
  title: string,
  pagePath: string,
)
: RecorderView

Tạo một khung hiển thị có thể xử lý việc phát lại. Khung hiển thị này sẽ được nhúng vào bảng điều khiển Trình ghi.

Thông số

  • tiêu đề

    chuỗi

    Tiêu đề xuất hiện bên cạnh biểu tượng tiện ích trên thanh công cụ Công cụ cho nhà phát triển.

  • pagePath

    chuỗi

    Đường dẫn của trang HTML của bảng điều khiển so với thư mục tiện ích.

Giá trị trả về

registerRecorderExtensionPlugin()

chrome.devtools.recorder.registerRecorderExtensionPlugin(
  plugin: RecorderExtensionPlugin,
  name: string,
  mediaType: string,
)
: void

Đăng ký một trình bổ trợ tiện ích Trình ghi.

Thông số

  • trình bổ trợ

    Một thực thể triển khai giao diện RecorderExtensionPlugin.

  • tên

    chuỗi

    Tên của trình bổ trợ.

  • mediaType

    chuỗi

    Loại nội dung nghe nhìn của nội dung chuỗi mà trình bổ trợ tạo ra.