Appearance
Cypress 常用命令
cy = Cypress 提供的“浏览器自动操作 + 断言 API”
最常用的 cy 方法
打开页面
- 只能用在 E2E Testing
cy.visit()
示例:
cy.visit('http://localhost:5173')找元素
- 从页面中查找 DOM 元素
cy.get()
示例:
cy.get('.btn')
cy.get('#login')
cy.get('[data-cy=submit]')找“带文字”的元素
- 找页面中包含指定文本的元素
cy.contains()
示例:
cy.contains('登录')
cy.contains('欢迎')点击
- 模拟用户点击
cy.click()
示例:
cy.get('.btn').click()输入内容
cy.type()
示例:
cy.get('input').type('admin')
支持特殊键:
.type('{enter}')
.type('{backspace}')断言(判断对不对)
cy.should()
示例:
cy.get('.error').should('exist')
常见断言:
| 写法 | 含义 |
| ------------ | ----- |
| `exist` | 存在 |
| `not.exist` | 不存在 |
| `be.visible` | 可见 |
| `contain` | 包含文本 |
| `have.value` | 输入框的值 |
例子:
检查 input 输入框里的值是不是 admin
cy.get('input') // 找到页面上的 input 元素
.should('have.value', // 断言:它的 value 属性
'admin' // 应该等于 admin
)等待
- 不推荐乱用
cy.wait()
示例:
cy.wait(1000)拦截接口(非常重要)
cy.intercept()
示例:
监听(拦截)一个接口请求,并给它起个名字
cy.intercept('GET', '/api/login') // 拦截 GET /api/login 接口
.as('login') // 起别名叫 login
cy.wait('@login') // 等别名为 login 的接口返回读取测试数据
cy.fixture()
示例:
从文件里读取测试数据
fixture: cypress/fixtures/xxxx.json
xxxx.json 内容示例
const user = {
"name": "admin",
"password": "123456"
}
cy.fixture('xxxx.json') // 读取这个 json 文件
.then((user) => { // user 就是文件里的对象
cy.get('input').type(user.name)
})组件测试专用
- 只能在 Component Testing 里用
mount(MyComponent)