zoukankan      html  css  js  c++  java
  • Cypress系列(53)- as() 命令详解

    如果想从头学起Cypress,可以看下面的系列文章哦

    https://www.cnblogs.com/poloyy/category/1768839.html

    作用

    • 起别名以供以后使用
    • 可在 cy.get() 或 cy.wait() 命令中引用别名

    语法格式

    .as(aliasName)

    正确格式

    // 给第一个 li 元素起别名
    cy.get('.main-nav').find('li').first().as('firstNav')
    
    // 给网络请求的响应起别名
    cy.route('PUT', 'users', 'fx:user').as('putUser')    

    引用别名的方式

     cy.get() 或 cy.wait() 命令中使用@前缀引用的别名的名称,如 @firstNav 、 @putUser 

    简单的栗子

    一般 .wrap()  和 as() 配对使用

    cypress 代码

    两个测试用例

    1. 获取元素,再进行判断
    2. 获取 wrap() 生成的对象,然后再对它进行操作

    测试结果

    结合 fixture() 的栗子

    代码一

    cy.fixture('users').as('users')
    cy.log(`变量name${this.users.length}`

    测试结果

     为什么报错呢

    • 是因为 Cypress 的命令是异步的
    • 因此,无法同步访问别名的任何内容(第二行)
    • 必须使用其他异步命令( 例如.then() )来访问已别名的内容

    代码二

    cy.fixture('users').as('users').then(function () {
         cy.log(`变量name${this.users.length}`)
    })

    用 this. 调用别名

    测试结果

    结合 get() 的栗子

    cypress 代码

    it('via get().', () => {
        cy.fixture('users.json').as('admins')
        cy.get('@admins')
        .then((users) => {
            cy.log(`There are ${users.length} admins.`)
        })
    })

    测试结果

  • 相关阅读:
    BZOJ 1014 火星人prefix
    BZOJ 1013 球形空间产生器
    BZOJ 1012 最大数
    BZOJ 1011 遥远的行星
    BZOJ 1010 玩具装箱
    BZOJ 1009 GT考试
    BZOJ 1008 越狱
    BZOJ 1007 水平可见直线
    BZOJ 1006 神奇的国度
    Luogu 1450 [HAOI2008]硬币购物
  • 原文地址:https://www.cnblogs.com/poloyy/p/13730822.html
Copyright © 2011-2022 走看看