【发布时间】:2020-05-30 08:09:12
【问题描述】:
处理使用@vue/cli 4.2.2 和Vue CLI Electron Plugin Builder 创建的项目。 Vue CLI 使用HtmlWebpackPlugin 自动在public 目录中生成index.html。相关index.html 页面的</title> 具有<%= htmlWebpackPlugin.options.title %> 语法,可自动从vue.config.js 文件中检测页面标题。
vue.config.js
module.exports = {
pluginOptions: {
electronBuilder: {
chainWebpackRendererProcess: config => {
config.plugin("html").tap(args => {
args[0].title = "Stack Overflow";
return args;
});
}
}
}
};
问题在于,当应用启动时,页面标题从 stackoverflow 变为 Stack Overflow 时会出现毫秒闪烁。为了防止这种情况,我使用了如下所示的 Electron page-title-updated 钩子来确保应用标题正确加载。
main.js
var win = new BrowserWindow({
width: 800,
height: 600,
title: 'Stack Overflow'
});
win.on('page-title-updated', (evt) => {
evt.preventDefault();
});
效果很好,现在</title> 中没有窗口闪烁,但是当使用 Cypress 运行 e2e 测试时,它只是找不到正确的标题 Stack Overflow 并且测试失败。
test.js
describe("My First Test", () => {
it("ensures the correct title", () => {
cy.visit('/').title().should('eq', 'Stack Overflow')
})
});
Cypress 测试结果expected stackoverflow to equal Stack Overflow。那么,百万美元的问题是,我如何获得赛普拉斯测试通过?
【问题讨论】:
标签: javascript vue.js electron cypress vue-cli-4