赛普拉斯:无法从窗口对象访问应用

时间:2018-07-01 09:51:43

标签: vue.js cypress

我需要在cypress测试中访问我的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");
    });

但是它始终是不确定的,我在做什么错了?

1 个答案:

答案 0 :(得分:1)

您使用的

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

或者您可以使用cy.state('window')来同步返回窗口对象,但这是未记录的,将来可能会更改。

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

enter image description here