首页 > 解决方案 > .text() 方法返回 [object Object] 而不是 cypress 测试中的文本

问题描述

// should store text in "person" variable
const person = cy.get(' div.global-user-nav-menu > div > div > div > div.info-container > div.display-name').text() 

我想将这些“人”变量用作函数参数

SpaceView.assignTo(person)

标签: cypress

解决方案


赛普拉斯架构在承诺链上工作,你不能打破链并从中返回值......你必须链接返回值并对其采取行动。它不像 selenium getText() 方法那样工作:) 所以你的下面的语句不起作用。

const personName = cy.get(`div.global-user-nav-menu > div > div > div > div.info-container > div.display-name`).text();
SpaceView.assignTo(personName);

所以你必须如下构造,以使其工作

cy.get(`div.global-user-nav-menu > div > div > div > div.info-container > div.display-name`).then(element => {
      SpaceView.assignTo(element.text());
    });

(或者)

    return cy.get(`div.global-user-nav-menu > div > div > div > div.info-container > div.display-name`).then(ele => {
      return ele.text()
    }).then(personName => {
      SpaceView.assignTo(personName);
    });

推荐阅读