柏树:无法从 window 对象访问应用程序

cypress: unable to access app from window object

我需要在赛普拉斯测试中访问我的 vuex 商店,所以我将应用程序添加到 main.js 中的 window 对象:

const app = new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app");

window.vueApp = app;

然后我尝试在我的登录命令中访问它 (commands.js):

cy
    .request({
      method: "POST",
      url: "http://localhost:8081/api/v1/login",
      body: {},
      headers: {
        Authorization: "Basic " + btoa("administrator:12345678")
      }
    })
    .then(resp => {
      console.log("app:", window.vueApp);
      ...
      window.localStorage.setItem("aq-username", "administrator");
    });

但它总是未定义,我做错了什么?

您使用的

window 指的是柏树转轮 window。如果要访问 AUT(被测应用程序)的 window,请使用 cy.window() 命令。

或者你可以使用 cy.state('window') which returns 同步 window 对象,但这没有记录,将来可能会改变。

相关:如果你想在开发控制台中访问你的 AUT,你需要将上下文切换到 Your app...: