jquery 如何将数据保存在变量中并在Cypress中的其他块中重用?

kd3sttzy  于 2023-03-01  发布在  jQuery
关注(0)|答案(2)|浏览(101)

如果可以在www.example.com中Cypress.io将数据保存在变量中,并在其他块中重复使用。例如,我有一个特殊的设备名称。我想接收此数据,单击后,检查新窗口中的标题是否包含该设备的特殊名称
我知道它如何与静态名称,但我试图创建dunamic自动测试,我想知道它是否可能

qnyhuwrf

qnyhuwrf1#

我有一种感觉,这已经有了一个答案,但找不到一个普遍适用的。
也许使用cypress-data-session是一个好方法。有很多文档,但这里有一个示例用法:

beforeEach(() => {
  // let's say you want to set up the value "A"
  cy.dataSession(
    'A', // data name
    () => 'a', // data creation commands
    (x) => x === 'a', // data validation function
  )
})

it('has object A', () => {
  expect(Cypress.getDataSession('A')).to.equal('a')
})

我看到的另一个选项是使用Cypress环境作为数据存储。

// setting
Cypress.env('my-value', variable)

// retrieving
const myValue = Cypress.env('my-value')

IMO的缺点是--到处使用Cypress.env()并不优雅,如果Cypress浏览器重置,它可能会丢失值。

nle07wnf

nle07wnf2#

在你所有的测试前面放一个const/var/let,不给予它赋值。在你的测试中,你可以给它一个值,然后在其他测试中使用它。

var underlinedText

it("test", () => {
    cy.get('div>u').then(($btn) => {
        underlinedText = $btn.text();
    })
})

it("also test", () => {
    cy.get('div>a').should('contain', underlinedText);
})

相关问题