【问题标题】:PlayWright Electron: Is it possible to get BrowserWindow from Page?PlayWright Electron:是否可以从 Page 获取 BrowserWindow?
【发布时间】:2022-12-11 10:08:39
【问题描述】:

我试图找到包含加载页面的电子窗口对象。我想采取以下行动:

let window1 : BrowserWindow | null = null
let window2 : BrowserWindow | null = null

  electronApp.on("window", async (page) => {
    //evaluate page so that title is loaded
    await page.evaluate(() => { });
    if(await page.title() === 'page1') {
      window1 = getElectronBrowserWindow(page); // Example
    }
    else if(await page.title() === 'page2') {
      window2 = getElectronBrowserWindow(page);
  }
  });

在我的测试中,我想做类似的事情:

 test("check if window is not visible", async () => {
   let visibility = window1.isVisible();
   expect(visibility).toBeFalsy
  });
 });

我遇到过 electronApplication.browserWindow(page)。但是,它不提供页面的 BrowserWindow 对象。

【问题讨论】:

    标签: playwright playwright-test electron-vue


    【解决方案1】:

    是的,这是可以做到的。

    electronApplication.browserWindow(page)提供的是JSHandle<Electron.BrowserWindow>类型的对象。你必须使用它的evaluate() 方法。

    我不确定您测试的所有细节以及 b/w window1window2 的差异,但这是一个测试浏览器窗口的示例可见的。希望这能澄清

    import { expect, test } from "@playwright/test";
    import { ElectronApplication, Page, JSHandle, _electron } from "playwright";
    
    let electronApp: ElectronApplication;
    let page: Page;
    let bwHandle: JSHandle<Electron.BrowserWindow>;
    
    test.beforeAll(async () => {
      electronApp = await _electron.launch({
        // your launch options
      });
      page = await electronApp.firstWindow();
    });
    
    test("check if window is visible", async () => {
      bwHandle = await electronApp.browserWindow(page);
      const visible = await bwHandle.evaluate((win) => win.isVisible());
      expect(visible).toBeTruthy();
    });
    
    test.afterAll(async () => {
      await electronApp.close();
    });
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-04
      • 2017-12-18
      • 1970-01-01
      • 1970-01-01
      • 2017-01-30
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多