我们的Electron应用程序开始最小化到Windows通知区域,即在桌面上不可见。

用户通过单击应用程序通知托盘图标来强制该应用程序显示在桌面上。

自动化是possible with RobotJs(即点击硬编码的XY坐标),但即使使用归一化的坐标,在多种分辨率下也有些不稳定。

通过TestCafe,我想以编程方式显示和隐藏测试所需要的主窗口。

最佳答案

遵循Alex's example并在同事的帮助下,可以使用TestCafe ClientFunctionElectron native functions:

import { ClientFunction } from 'testcafe';

fixture `Electron page`
        .page ``;

const isWindowVisible = ClientFunction(() => {
  const remote = require('electron').remote;
  const win = remote.getCurrentWindow();
  return win.isVisible();
});

const hideWindow = ClientFunction(() => {
  const remote = require('electron').remote;
  const win = remote.getCurrentWindow();
  win.hide();
});

const showWindow = ClientFunction(() => {
  const remote = require('electron').remote;
  const win = remote.getCurrentWindow();
  win.show();
});

test('My test', async (t) => {

  await showWindow();
  console.log(await isWindowVisible());
  await t.wait(2000);
  await hideWindow();
  console.log(await isWindowVisible());
});

关于testing - 带 Electron : show and hide main window的TestCafe,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58386602/

10-13 00:11