当前位置: 首页 > article >正文

vue安装cypress及其部分用法

安装Cypress

在vue中安装Cypress

1. 安装 Cypress

首先,确保你已经安装了 Cypress。在你的 Vue 项目根目录下运行以下命令:

npm install cypress --save-dev

2. 打开 Cypress

安装完 Cypress 后,可以通过以下命令打开 Cypress 测试界面:

npx cypress open

在TS中安装Cypress

1. 安装 Cypress 和 TypeScript 相关依赖

首先,在你的项目中安装 Cypress 和 TypeScript 相关的类型定义。你可以通过以下命令进行安装:

npm install cypress --save-dev
npm install --save-dev @types/node @types/cypress

这将安装:

  • cypress:用于 E2E 测试。
  • @types/node 和 @types/cypress:提供 Cypress 和 Node 的类型支持,以便你能够在 TypeScript 中使用类型检查。

2. 安装完成之后,在项目下会有一个 cypress.config.ts

import { defineConfig } from "cypress";
export default defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      // 如果需要在测试中自动启动 Vite 服务器,可以在这里添加代码来启动它
      // 注意:你需要确保 Vite 服务器在运行时监听并准备好处理请求
    },
    baseUrl: "http://localhost:8088", // Vite 开发服务器的地址
    supportFile :false,
    defaultCommandTimeout: 10000, // 将默认超时时间设置为 10},
  component: {
    devServer: {
      framework: "vue",
      bundler: "vite"
    }
  }
});

3、在tsconfig.json中配置参数

  "types": ["cypress"],
  "include": ["cypress/**/*.ts","node_modules/cypress"]

Cypress找不到chrome浏览器解决办法

步骤

  • 可以运行npx cypress info 来查看可识别到的本地安装的浏览器

    因为cypress默认在C:/Program Files (x86)/Google/Chrome/Application/chrome.exe路径下找chrome,而我本机chrome不是在这个路径

  • 创建链接,使用管理员身份打开cmd 执行命令

  • mkdir “C:\Program Files (x86)\Google\Chrome\Application”

  • 然后再执行 mklink “C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” source_file,source_file是本机chrome的安装目录

Cypress的相关用法

1、cy.contains() 和cy.get()

例如 cy.contains(‘button’, ‘添加线段’).click(),详解:

  • cy.contains(): 这个命令用于查找包含特定文本的 DOM 元素。它会在页面上找到任何包含指定文本内容的元素,并返回该元素的引用。
  • ‘button’: 第一个参数 ‘button’ 指定了要查找的元素类型。在这个例子中,它表示查找所有标签。
  • ‘添加线段’: 第二个参数 ‘添加线段’ 是文本内容,用于过滤出包含该文本的元素。Cypress 会查找页面上所有按钮,找到其中文本内容为 “添加线段” 的按钮。
  • .click(): 这个命令会模拟用户点击该元素,也就是点击文本为 “添加线段” 的按钮。

例如cy.get(‘.button’).click();

  • 作用:cy.get() 用于选择页面上的 DOM 元素。它接受一个选择器(CSS 选择器),并返回匹配该选择器的所有元素。
  • 选择方式:你可以使用任何合法的 CSS 选择器来选择元素,例如类名、ID、标签名、属性等。
  • 适用场景:适用于你已知元素的结构或类名、ID,或者你需要通过某种 CSS 选择器来获取元素

2、cy.visit()

  • 用途:用于访问一个指定的 URL,加载页面。
  • 示例:
cy.visit('https://example.com');
cy.visit('/path/to/your/page');  // 相对路径

3、cy.url()

  • 用途:获取当前页面的 URL 或断言 URL。
  • 示例:
cy.url().should('include', '/login');  // 验证 URL 中是否包含 '/login'

4、cy.type()

  • 用途:模拟用户在输入框中的输入。
  • 示例:
cy.get('input[name="username"]').type('testuser');  // 在输入框中输入 'testuser'

5、cy.clear()

  • 清除输入框中的内容
  • 示例:
cy.get('input[name="username"]').clear();  // 清除输入框中的文本

6、cy.should()

  • 对元素或行为进行断言,验证元素的状态或行

  • 常见断言类型:

    • cy.should(‘be.visible’): 验证元素是否可见
    • cy.should(‘exist’): 验证元素是否存在
    • cy.should(‘have.class’, ‘active’): 验证元素是否有特定类
    • cy.should(‘have.text’, ‘Hello’): 验证元素的文本内容
  • 示例:

cy.get('.header').should('be.visible');  // 验证 `.header` 元素可见
cy.get('.btn').should('have.text', '提交');  // 验证按钮文本为 '提交'

7、cy.window()

  • 访问浏览器的 window 对象,适用于获取应用中的 JavaScript 全局对象
  • 示例:
cy.window().should('have.property', 'app');

8、cy.within()

  • 用法概述

    • 作用:将后续的 Cypress 命令限制在某个特定的父元素范围内。它通常与 cy.get() 配合使用,确保只在某个元素内部查找并操作子元素。
    • 常见场景:例如在表单中查找特定的输入框、在一个列表项中查找按钮,或者在某个区域内查找多个元素时,避免查找全局范围的元素
  • 示例:

cy.get('#login-form').within(() => {
  cy.get('input[name="username"]').type('testuser');  // 在表单内输入用户名
  cy.get('input[name="password"]').type('password');  // 在表单内输入密码
  cy.get('button[type="submit"]').click();  // 在表单内点击提交按钮
});

http://www.kler.cn/a/414606.html

相关文章:

  • 嵌入式Qt使用ffmpeg视频开发记录
  • CentOS上如何离线批量自动化部署zabbix 7.0版本客户端
  • Python plotly库介绍
  • Windows修复SSL/TLS协议信息泄露漏洞(CVE-2016-2183) --亲测
  • 【Python爬虫五十个小案例】爬取豆瓣电影Top250
  • Vue.js --- 生命周期
  • 基于C#+SQLite开发数据库应用的示例
  • 从传统IT运维到智能化运维的转型之路
  • 数据结构 (10)队列
  • linux基础2
  • 分布式搜索引擎Elasticsearch(一)
  • golang每日一题:context、goroutine相关
  • 【Ubuntu 24.04】How to Install and Use NVM
  • 【算法day2】数组:滑动窗口、前缀和及指针控制
  • 轻松解析 PDF 文档:深入了解 Python 的 pdfplumber 库
  • 原生html+css+ajax+php图片压缩后替换原input=file上传
  • 【配置】pycharm运行的项目如何修改名称(项目名称、模块名称)
  • 【AI系统】分布式通信与 NVLink
  • linux桌面qt应用程序UI自动化实现之dogtail
  • 3.5 Ui文件(界面文件)
  • Qml-TabBar类使用
  • 解决水库安全监测难题 长期无外接电源 低功耗设备智能化监测系统
  • Qt桌面应用开发 第八天(读写文件 文件编码 文件流)
  • 路由引入中次优路由和路由环路问题
  • Linux:进程的概念
  • c/c++ 用easyx图形库写一个射击游戏