带有 Electron 的 TestCafe:显示和隐藏主要内容 window
TestCafe with Electron: show and hide main window
我们的 Electron 应用程序开始最小化到 Windows 通知区域,即在桌面上不可见。
用户通过单击应用程序通知托盘图标强制应用程序显示在桌面上。
自动化是 (即点击硬编码的 XY 坐标),但即使使用标准化坐标,这在多种分辨率下也有点不稳定。
通过 TestCafe,我想根据测试需要以编程方式显示和隐藏主要 window。
正在关注 and with help from a colleague, this is possible using the TestCafe ClientFunction and Electron 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());
});
我们的 Electron 应用程序开始最小化到 Windows 通知区域,即在桌面上不可见。
用户通过单击应用程序通知托盘图标强制应用程序显示在桌面上。
自动化是
通过 TestCafe,我想根据测试需要以编程方式显示和隐藏主要 window。
正在关注
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());
});