首页 > 其他分享 >Cypress之与元素交互

Cypress之与元素交互

时间:2023-04-16 22:34:39浏览次数:32  
标签:contains get Cypress 元素 选择器 cy li 交互 click

Cypress之与元素交互

  1. 元素定位选择器

  2. 页面元素交互

  3. 定位元素辅助方法

  4. 可操作类型

  5. 模拟键盘操作


在介绍元素交互之前需要介绍一下命令日志:

作用:

展示额外的Log信息

  • cy.route()
  • cy.spy()
  • cy.stub()

Cypress特有的定位器data-*

  • data-cy
  • data-test
  • data-testid

Cypress专有的定位器,仅用来测试

获取方式:

cy.get('[data-cy=]').click()

常规选择器

  • #id选择器

cy.get('#main').click()--->buttonid属性

  • .class选择器

cy.get('.btn').click()--->buttonclass属性

  • attributes属性选择器

cy.get('button[id=main]').click()

  • :nth-child(n)选择器

示例:

<ul>
    <li id="id">1</li>
    <li>2</li>
    <li>3</li>
</ul>

cy.get('ul>li:nth-child(2)')

cy.get('li:nth-child(2)')

  • Cypress.$定位器(jQuery选择器)

Cypress.$('#main')

  • .find(selector)

cy.get('ul').find('#id')

  • .get(selector)

cy.get('#id')

  • .contains(selector)

cy.contains('1')--->直接查找ul下的li内容为1的--->直接通过内容查找

cy.contains('li', '1')--->直接通过内容查找,很强大

示例代码:

for(const user of testLoginUser) {
            it(user.summary, function() {
                // cy.get('ul>li:nth-child(2)')
                // .as('change_Btn');
                // cy.get('@change_Btn')
                // .click();
                cy.contains('li', '密码登录')
                .click();

                cy.get('#agree')
                .click();

                // 检查元素处于被选中状态
                cy.get('#agree')
                .should('be.checked');

                cy.get('#name')
                .type(user.username);
                cy.get('#password')
                .type(user.password);

                cy.get('button[type=submit]')
                .should('have.class', 'button__StyledButton-sc-1xvpoi0-0')
                .should('have.class', 'DNJh atom__SumbitButton-sc-1f08aeq-3')
                .should('have.class', 'jdbddl')
                .as('submit_Btn');
                cy.get('@submit_Btn')
                .click();
            });
        }

表达式查找:

cy.contains(/^i\w+/)--->基于表达式查找

重点:

contains的三种用法

Cypress之与元素交互

  1. 元素定位选择器

  2. 页面元素交互

  3. 定位元素辅助方法

  4. 可操作类型

  5. 模拟键盘操作


在介绍元素交互之前需要介绍一下命令日志:

作用:

展示额外的Log信息

  • cy.route()
  • cy.spy()
  • cy.stub()

Cypress特有的定位器data-*

  • data-cy
  • data-test
  • data-testid

Cypress专有的定位器,仅用来测试

获取方式:

cy.get('[data-cy=]').click()

常规选择器

  • #id选择器

cy.get('#main').click()--->buttonid属性

  • .class选择器

cy.get('.btn').click()--->buttonclass属性

  • attributes属性选择器

cy.get('button[id=main]').click()

  • :nth-child(n)选择器

示例:

<ul>
    <li id="id">1</li>
    <li>2</li>
    <li>3</li>
</ul>

cy.get('ul>li:nth-child(2)')

cy.get('li:nth-child(2)')

  • Cypress.$定位器(jQuery选择器)

Cypress.$('#main')

  • .find(selector)

cy.get('ul').find('#id')

  • .get(selector)

cy.get('#id')

  • .contains(selector)

cy.contains('1')--->直接查找ul下的li内容为1的--->直接通过内容查找

cy.contains('li', '1')--->直接通过内容查找,很强大

示例代码:

for(const user of testLoginUser) {
            it(user.summary, function() {
                // cy.get('ul>li:nth-child(2)')
                // .as('change_Btn');
                // cy.get('@change_Btn')
                // .click();
                cy.contains('li', '密码登录')
                .click();

                cy.get('#agree')
                .click();

                // 检查元素处于被选中状态
                cy.get('#agree')
                .should('be.checked');

                cy.get('#name')
                .type(user.username);
                cy.get('#password')
                .type(user.password);

                cy.get('button[type=submit]')
                .should('have.class', 'button__StyledButton-sc-1xvpoi0-0')
                .should('have.class', 'DNJh atom__SumbitButton-sc-1f08aeq-3')
                .should('have.class', 'jdbddl')
                .as('submit_Btn');
                cy.get('@submit_Btn')
                .click();
            });
        }

表达式查找:

cy.contains(/^i\w+/)--->基于表达式查找

重点:

contains的三种用法

Cypress之与元素交互

  1. 元素定位选择器

  2. 页面元素交互

  3. 定位元素辅助方法

  4. 可操作类型

  5. 模拟键盘操作


在介绍元素交互之前需要介绍一下命令日志:

作用:

展示额外的Log信息

  • cy.route()
  • cy.spy()
  • cy.stub()

Cypress特有的定位器data-*

  • data-cy
  • data-test
  • data-testid

Cypress专有的定位器,仅用来测试

获取方式:

cy.get('[data-cy=]').click()

常规选择器

  • #id选择器

cy.get('#main').click()--->buttonid属性

  • .class选择器

cy.get('.btn').click()--->buttonclass属性

  • attributes属性选择器

cy.get('button[id=main]').click()

  • :nth-child(n)选择器

示例:

<ul>
    <li id="id">1</li>
    <li>2</li>
    <li>3</li>
</ul>

cy.get('ul>li:nth-child(2)')

cy.get('li:nth-child(2)')

  • Cypress.$定位器(jQuery选择器)

Cypress.$('#main')

  • .find(selector)

cy.get('ul').find('#id')

  • .get(selector)

cy.get('#id')

  • .contains(selector)

cy.contains('1')--->直接查找ul下的li内容为1的--->直接通过内容查找

cy.contains('li', '1')--->直接通过内容查找,很强大

示例代码:

for(const user of testLoginUser) {
            it(user.summary, function() {
                // cy.get('ul>li:nth-child(2)')
                // .as('change_Btn');
                // cy.get('@change_Btn')
                // .click();
                cy.contains('li', '密码登录')
                .click();

                cy.get('#agree')
                .click();

                // 检查元素处于被选中状态
                cy.get('#agree')
                .should('be.checked');

                cy.get('#name')
                .type(user.username);
                cy.get('#password')
                .type(user.password);

                cy.get('button[type=submit]')
                .should('have.class', 'button__StyledButton-sc-1xvpoi0-0')
                .should('have.class', 'DNJh atom__SumbitButton-sc-1f08aeq-3')
                .should('have.class', 'jdbddl')
                .as('submit_Btn');
                cy.get('@submit_Btn')
                .click();
            });
        }

表达式查找:

cy.contains(/^i\w+/)--->基于表达式查找

重点:

contains的三种用法

标签:contains,get,Cypress,元素,选择器,cy,li,交互,click
From: https://www.cnblogs.com/JunkingBoy/p/17324288.html

相关文章

  • Cypress之断言
    Cypress之断言特点:Cypress支持多种风格断言,包括BDD和TDDBDD(行为驱动)、TDD(测试驱动)常见元素断言:针对长度断言cy.get('li.selected').should('have.length',3);--->BDD断言语法针对类断言cy.get('form').find('input').should('not.have.class',�......
  • Cypress之动态忽略测试用例
    Cypress之动态忽略测试用例示例代码:describe('Login',()=>{constusername='';constpassword='';context('TestLogin',()=>{if(Cypress.env('funFlag')==1){cy.visi......
  • python stata交互
    python和python:有所区别:python(不带冒号)遇到错误会保留在Python环境。python:(带冒号)遇到错误时会回到Stata环境。Python部分的代码写完之后,输入end退出Python环境。但输入end只是退出Python环境,Python环境并没有清除,下次输入python或者python:时会保......
  • python stata交互
    python:fromsfiimportScalardefcalcsum(sum1,sum2):res=sum1+sum2Scalar.setValue("result",res)#存入scalara=1b=2calcsum(a,b)end//python函数建立一次,只要不关闭STATA则可一直使用displayresultpythoncalcsum(4,5)enddispresult//stat......
  • JS的for循环动态渲染html只有最后一个元素生效?
    背景:我想在html3个ul中动态生成5个子元素li目标效果:废话少说,代码直接梭起来~1.先写html结构<sectionclass="list-box"><ulid="myList"></ul><ulid="myListOne"></ul><ulid="myListTwo"></ul>&......
  • js动态查询指定class名的所有元素,querySelectorAll()和querySelectorAll()的区别
    "document.querySelectorAll()"方法返回的是一个静态的NodeList(节点列表),即它只能在页面刚加载时获取到一次,之后即使有新的元素符合选择器,它也不会再重新获取。如果你想动态地获取到新增的元素,可以使用"document.getElementsByClassName()"或"document.getElementsByTagName()"......
  • [MAUI]模仿微信“按住-说话”的交互实现
    @目录创建页面布局创建手势控件创建TalkBox创建动画拖拽物动画按钮激活动画TalkBox动画Layout动画项目地址.NETMAUI跨平台框架包含了识别平移手势的功能,在之前的博文[MAUI项目实战]手势控制音乐播放器(二):手势交互中利用此功能实现了pan-pit拖拽系统。简单来说就是拖拽物(pan......
  • 标准的WebApi应该有哪些元素
    提问标准的WebApi应该有哪些元素回答声明完整的响应码200,404,401,400添加Operation添加Tag聚合业务申明请求和响应类型标注参数来源FromHeader使用IActionResult代替ActionResult[Tag("查询类服务")][HttpGet,Route("mytoute",Name=nameof(GetSomething)......
  • 数组元素排序(二)
    快速排序(QuickSort)由图灵奖获得者TonyHoare发明,被列为20世纪十大算法之一,是迄今为止所有内排序算法中速度最快的一种,快速排序的时间复杂度为O(nlog(n))。快速排序通常明显比同为O(nlogn)的其他算法更快,因此常被采用,而且快排采用了分治法的思想,所以在很多笔试面试中能经常看到快......
  • JAVA 循环删除list中元素的方法总结
    摘要:介绍List集合实现元素边遍历边删除的方法,例如removeIf和迭代器iterator.remove()等。综述  List集合是我们开发中经常使用到的一种集合形式,有时候会遇到在遍历List集合时需要删除指定的元素。但在根据条件使用for循环或者增强的for循环遍历删除某些元素时却不能随心所欲地......