TestCafe with Electron:显示和隐藏主窗口



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

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

使用RobotJs 可以自动执行此操作(即单击硬编码的 XY 坐标(,但即使使用规范化坐标,这在多个分辨率下也有点不稳定。

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

按照 Alex 的例子,在同事的帮助下,使用 TestCafe ClientFunction 和 Electron 原生函数可以实现:

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());
});

最新更新