Извлечь нативный интерфейс из браузера Puppeteer / контекста страницы - PullRequest
0 голосов
/ 30 декабря 2018

Можно ли получить собственный интерфейс из экземпляра Browser или Page, чтобы проверить, является ли объект instanceof этим интерфейсом?

Например, в контексте шутливого тестирования (где для некоторыхпричины CanvasRenderingContext2D недоступен, поскольку это контекст Node, а не JSDOM или другая эмуляция API браузера):

it("should create an instance of CanvasRenderingContext2D", async () => {
  expect.assertions(1);

  const context = await page.evaluate(() => {
    return document.createElement("canvas").getContext("2d");
  });

  // Could a JSHandle be used somehow?
  const CanvasRenderingContext2DInterface = await page.evaluateHandle(() => CanvasRenderingContext2D);

  expect(context).toBeInstanceOf(CanvasRenderingContext2DInterface);
});

1 Ответ

0 голосов
/ 10 января 2019

Проверка экземпляра должна оцениваться непосредственно в браузере / странице Puppeteer, в противном случае контексты выполнения отличаются.

it("should create an instance of CanvasRenderingContext2D", async () => {
  expect.assertions(1);

  const isInstanceOfCanvasRenderingContext2D = await page.evaluate(
    () =>
      document.createElement("canvas").getContext("2d") instanceof CanvasRenderingContext2D
  );
  expect(isInstanceOfCanvasRenderingContext2D).toBeTruthy();
});
...