抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

前言

在自动化中经常需要反复掉一个接口或者进到某个页面,这个时候就可以考虑把这个过程封装为公共方法,在cypress中,称为Commands

示例

例如登陆操作,每个case重头开始跑,登陆可以写成一个方法,在case内部调用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const getIframeDocument = () => {
return cy
.get('iframe的id') //格式为#+id
.its('0.contentDocument')
};

const getIframeBody = () => {
// get the document
return getIframeDocument()
.its('body').should('not.be.undefined')
.then(cy.wrap)
};

//很多时候要用到登陆,我们把登陆简化以下。
Cypress.Commands.add('login', (username, passwd) => {
cy.visit('登陆地址')
cy.get('').type(username)
cy.get('').type(passwd)
cy.get('').click()
});

it('新建单据', () => {
cy.login('用户名', '密码').wait(4000);
cy.get('#sideBarList>li:nth-child(4)').click();
//进入iframe
getIframeBody().contains('xx单').click();
});

但以上还是有所不足,每次执行都从头开始来,每次都有登陆过程在,那么是否可以只登陆一次,而后面执行的case避免登陆直接从一个或多个基础页面开始执行?

评论