首页 > 其他分享 >cypress实战

cypress实战

时间:2024-01-19 17:35:18浏览次数:28  
标签:实战 get color cypress cy html scheme

 

安装环境

npm config set registry https://registry.npm.taobao.org 
npm install cnpm 
cnpm install pnpm 
找到npm的安装目录,加到电脑环境变量里

pnpm install cypress --save-dev

cypress open创建一个项目

 

spec888.cy.js文件

/******/ (() => { // webpackBootstrap
/******/     "use strict";
  var __webpack_exports__ = {};
  /*!***********************************!*\
    !*** ./cypress/e2e/spec666.cy.js ***!
    \***********************************/
  describe('template spec', () => {

    beforeEach(() => {
      cy.visit('http://127.0.0.1:8080/test.html')
    })
    it('test init passes', () => {
      const that = cy.get('#init').click()
      that.get('html').then(res => {
        const html = res[0]
        if(!html.getAttribute('color-scheme')){
          html.setAttribute('color-scheme','light')
        }
        cy.get('html').should('have.attr', 'color-scheme');

      })
    })


    it('test initFilter passes', () => {
      const that = cy.get('#initFilter').click()
      that.get('html').then(res => {
        const html = res[0]
        if(!html.getAttribute('color-scheme')){
          html.setAttribute('color-scheme','light')
        }
        cy.get('html').should('have.attr', 'color-scheme');

      })
    })


    it('test setColorScheme passes', () => {
      const that = cy.get('#setColorScheme').click()
      that.get('html').then(res => {
        const html = res[0]
        if(!html.getAttribute('color-scheme')){
          html.setAttribute('color-scheme','light')
        }
        cy.get('html').should('have.attr', 'color-scheme');

      })
    })


    it('test setFilter passes else', () => {
      const that = cy.get('#setFilter').click()
      that.get('html').then(res => {
        const html = res[0]
        if(!html.getAttribute('color-filter')){
          html.setAttribute('color-filter','gray')
        }
        cy.get('html').should('have.attr', 'color-filter');
}) }) }); /******/ })() ; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYzY2Ni5jeS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBQSxRQUFRLENBQUMsZUFBZSxFQUFFLE1BQU07RUFDOUJDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTTtJQUNqQkMsRUFBRSxDQUFDQyxLQUFLLENBQUMsNEJBQTRCLENBQUM7RUFDeEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jeXByZXNzL2UyZS9zcGVjNjY2LmN5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImRlc2NyaWJlKCd0ZW1wbGF0ZSBzcGVjJywgKCkgPT4ge1xyXG4gIGl0KCdwYXNzZXMnLCAoKSA9PiB7XHJcbiAgICBjeS52aXNpdCgnaHR0cHM6Ly9leGFtcGxlLmN5cHJlc3MuaW8nKVxyXG4gIH0pXHJcbn0pIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwiaXQiLCJjeSIsInZpc2l0Il0sInNvdXJjZVJvb3QiOiIifQ==

 

  cypress是在浏览器内部运行,比selenium在外运行稳定性更高,自动等待页面元素加载完成再执行的优势,故而选择,使用过程中遇到了不少问题。

 

 

问题1:

把html里的js单独封装,导入到cypress脚本文件中,使用write导入没有返回值,cypress脚本文件里没有addEventListenert方法,通过打印winow.document 均为找到解决方案。

最后通过查找cypress API文档看到getAttribute可以直接拿到html,然后再取属性值方便

 

 

问题2,cypress浏览器方式启动运行不方便

浏览器方式启动,每次需要初始化30~60秒时间,需要点击spec脚本文件再执行,

后续实际项目中执行,使用headless无头浏览器方式很方便

 

 

标签:实战,get,color,cypress,cy,html,scheme
From: https://www.cnblogs.com/wanghuaqiang/p/17975199

相关文章

  • 实战技巧CVE-2015-0005
    启用SMB签名和通信会话签名后,应用服务器和客户端之间的所有流量都有签名验证保护,中间人gongji者因为无法伪造签名而不能与目标主机进行正常的通信。签名密钥SessionKey基于客户端账号的口令NTLM值生成,应用服务器在认证阶段从认证服务器获取;客户端采用和认证服务器相同的算法,基于自......
  • 鸿蒙原生应用/元服务实战-AGC中几个菜单栏的关系
    大家是否清楚AGC这几个菜单栏的相互关系?我的元服务:点击后跳转到“我的应用”列表中的“HarmonyOS”页签,并且过滤出元服务。开发者可以在此模块中管理和运营元服务,例如创建元服务、发布元服务等。我的应用:开发者可以在此模块中管理和运营应用,例如创建应用、配置应用信息、发布应用、......
  • ThreadLocal 在实战场景下的内存泄漏、逻辑混乱问题总结
    前言很早之前虽然看过ThreadLocal的源码,但是对于真实业务场景下可能存在的问题没有做过总结,刚好前几天在分析Mybatis内存泄漏的问题,想着ThreadLocal不是也可能会发生内存泄漏吗?于是乎本文出现了。本文相关博客1:ThreadLocal还存在内存泄漏?源码级别解读2:高质量实现单文件......
  • Nginx 实战指南
    Nginx是一款高性能的开源反向代理服务器,也可用作负载均衡器、Web服务器和缓存服务器。本实战指南将带你深入了解Nginx的安装、基础配置、高级配置、最佳实践以及性能调优。步骤1:安装NginxUbuntusudoaptupdatesudoaptinstallnginxCentOSsudoyuminstallepel-release......
  • 小程序开发实战案例五 | 小程序如何嵌入H5页面
    在接入小程序过程中会遇到需要将H5页面集成到小程序中情况,今天我们就来聊一聊怎么把H5页面塞到小程序中。 本篇文章将会从下面这几个方面来介绍:小程序承载页面的前期准备小程序如何承载H5小程序和H5页面如何通讯小程序和H5页面的相互跳转 小程序承载页面的......
  • redis实战 pdf 下载
    《redis实战》深入浅出地介绍了Redis的5种数据类型,并通过多个实用示例展示了Redis的用法。除此之外,书中还讲述了Redis的优化方法以及扩展方法,是一本对于学习和使用Redis来说不可多得的参考书籍。《redis实战》一共由三个部分组成。部分对Redis进行了介绍,说明了Redis的基本使用......
  • MyBatis实战指南(三):常用注解及使用方法
    在前面的两篇文章中,我们已经详细介绍了MyBatis的工作原理和基本使用。今天,我们将深入探讨MyBatis的一个重要特性——注解。如果你对MyBatis的注解还不熟悉,那么这篇文章将为你打开一扇新的大门。一、什么是注解(Annotation)首先,我们需要明白什么是注解。注解Annotation是从JDK1.5......
  • Python第六小节 进行实战
    #方法一:lst=['88','89','90','98','00','99']foriinrange(len(lst)):#永昌成都直接遍历iflst[i]==0:lst[i]='200'+lst[i]else:lst[i]='19'+lst[i]print(lst)#......
  • AWS Cognito 实战指南
    AmazonCognito是AWS提供的一项身份验证和访问控制服务,适用于构建安全的用户身份验证和访问控制功能。本指南将介绍如何使用AWSCognito创建用户池和身份池,并在Java、Python和JavaScript应用程序中实现用户注册和登录功能。步骤1:创建用户池登录AWS控制台。在服务列表......
  • 生成学习全景:从基础理论到GANs技术实战
    本文全面探讨了生成学习的理论与实践,包括对生成学习与判别学习的比较、详细解析GANs、VAEs及自回归模型的工作原理与结构,并通过实战案例展示了GAN模型在PyTorch中的实现。关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦......