cypress元素定位

5、元素定位与交互

5.1元素定位

Cypress提供了多种定位方法供使用。如打开某个网站的element视图,定位到用户名输入框元素

  • #id选择器

cy.get(‘#usernamaSubmit‘)

  • .class类选择器

cy.get(‘.login btnHover’)

注意:上述类中间带空格的写法Cypress不支持,类中间带空格代表多个类,可删除空格,以.代替,如cy.get(‘.login.btnHover’)

  • attributes属性选择器

cy.get('div[id="usernamaSubmit"]')

  • :nth-child(n)选择器

:nth-child(n)选择器匹配属于其父元素的第n个子元素

  • .find(selector)

搜索被定位的元素的后代,如cy.get(‘u1’).find(‘#id’),

不能直接写cy.find(‘#id’),如cy.find(‘#id’)

  • .contains(selector)

.contains(selector)用来获取包含文本的DOM元素

如cy.contains(‘策略名称’)

或者cy.contains(‘li’,’策略名称’)

或者通过正则表达式查找

cy.contains(/^i\w+/)

  • .children()

.children()方法用来获取DOM元素的子元素

  • .parents()

.parents()方法用来获取DOM元素的所有父元素

  • .parent()

.parent()方法仅沿DOM树向上移动一个级别,获得的是指定DOM元素的第一层父元素

  • .siblings()

.siblings()方法用来获取DOM元素的所有同级元素

  • .first()

.first()方法用来匹配指定DOM对象集的第一个元素

  • .last()

.last()方法用来匹配指定DOM对象集的最后一个元素

  • .next()

.next()方法用来匹配给定DOM对象紧跟着的下一个同级元素

  • .nextAll()

匹配给定DOM对象之后的所有同级元素

  • .nextUntil(selector)

匹配给定DOM对象之后的所有同级元素直到遇到Until里定义的元素为止,如

cy.get(‘#id’).nextUntil(‘.#kevin’)

  • .prev()

匹配给定DOM对象紧跟着的上一个同级元素

  • .prevAll()

匹配给定DOM对象之前的所有同级元素

  • prevUntil()

匹配给定DOM()对象之后的所有同级元素直到遇到Until()里定义的元素为止,如

cy.get(#kevin).prevUntil(‘#id’)

  • each()

用来遍历数组及类型结构(数组或对象有length属性)

<u1>

<li>itesting</li>

<li>ray</li>

<li>kevin</li>

<li>emily</li>

</u1>

//打印u1所有子元素的文本

cy.get(‘u1’).each(($li)=>{

cy.log($li.text())

})

  • .eq()

用来在元素或者数组中的特定索引处获取DOM元素,和:nth-child()相同,

如cy.get(‘#id’).eq(0),其中cy.get(‘#id’)如果能找到2个元素,则eq(0)就是第一个元素

5.2元素操作

  • .click()

单击某个元素,语法

//单击某个元素

.click()

//带参数的单击,如.click(option),option的值有{force:true}和{multiple:true}

.click({force:true})是强制单击,可操作被覆盖的元素

.click({multiple:true})是单击所有的元素

.click([position)是单击某个元素的某个具体位置,其中position可以填写上中下左右,左上,右上等,如下所示:

//单击右上角位置

.click({‘topRight’})

//单击左上角位置

.click({‘topLeft’})

//单击正上方位置

.click({‘top’})

//单击左侧位置

.click({‘left‘})

//点击右侧位置

.click({‘right’})

//单击中心位置

.click({‘center‘})

//单击左下角位置

.click({‘bottomLeft})

//单击正下方位置

.click({‘bottom})

//单击右下角位置

.click({‘bottomRight})

.click()还接受健值组合,例如“Shift+click”,如

//执行shift+click操作,{release:false}表示长按shift健

.click(‘{shift}’,{release:false})

{alt}:按住alt健

{ctrl}:按住ctrl健

  • .dblclick()

双击某个元素,option和position用法同.click()

  • .rightclick()

右击某个元素, option和position用法同.click()

  • .type()

往DOM元素中输入。语法有

.type(text)

.type(text,options)

如果需要输入一些特殊字符,text参数可以使用{}去包含,如

//输入“{”

.type(‘{{}’)

options可接受的参数如下:

{backspace}:删除光标左侧的字符;

{del}:删除光标右侧的字符;

{downarrow}:向下移动光标,同键盘的↓按键;

{end}:将光标移到行尾;

{enter}:按Enter健;

{esc}:按Esc健;

{home}:将光标移到行首;

{insert}:在光标右边插入字符;

{leftarrow}:向左移动光标;

{pagedown}:向下滚动;

{pageup}:向上滚动;

{rightarrow}:向右移动光标;

{selectall}:通过创建选择范围来选择所有文本,同全部选中;

{uparrow}:向上移动光标,同键盘的↑按键;

  • .clear()

清除文本

  • .check()

针对<input>类型的单选框(radio button)或者复选框(check box),Cypress提供了.check()和uncheck()方法直接操作,代表选中和不选中,或者选中多值

//选中

.check()

//选中一个选项,值是value

.check(value),如.check(‘US’)

//选中多个选项

.check([‘ga’,’ca’])

  • uncheck()

用于取消选中单选框或者复选框,语法同.check()一致

  • .select()

如果下拉菜单是select形式的,则直接使用如下方式操作

cy.get(‘select’).select(‘下拉选项的值’)

<select>

<option value=’1’>itesting</option>

<option value=’2’>kevin</option>

<option value=’3’>emily</option>

</select>

//选中itesting

cy.get(‘select’).select(‘itesting’)

//选中itesting和kevin

cy.get(‘select’).select(‘itesting’,’kevin’)

如果下拉菜单是其他形式的,如下

<div id=”form”>

<u1 role=”listbox” class=”select-dropdown-menu”>

<li role=”option” class=”select-dropdown-item”>itesting</li>

<li role=”option” class=”select-dropdown-item”>kevin</li>

<li role=”option” class=”select-dropdown-item”>emily</li>

</div>

则查找itesting并选中的写法如下

cy.get(‘li’).eq(0).click()

  • .trigger()

在DOM元素上触发事件,如

//按下光标

cy.get(‘button’).trigger(‘mousedown’)

//移动光标到元素之上

cy.get(‘button’).twrigger(‘mouseover’)

//抬起光标

cy.get(‘button’).trigger(‘mouseleave’)

5.3 Cypress常见操作

  • 访问某个网站

cy.visit(‘https://www.baidu.com’),如果在cypress.json中配置了baseUrl的值,则Cypress自动加上前缀

  • 刷新当前页面

cy.reload()

cy.reload(true)强制刷新页面,等同于ctrl+f5

  • 最大化窗口

Cypress的默认运行窗口大小为1000px×660px,如果你的屏幕不够大,无法显示完整的像素,Cypress将自动缩小并居中显示你的应用程序。可以通过以下两种方式来设置运行窗口。

        1)在cypress.json中设置

        2)在运行用例中设置

              cy.viewpoint(1024,768)

  • 网页的前进和后退

cy.go(‘back’)或者cy.go(-1) 代表后退

cy.go(‘forward’)或者cy.go(1) 代表前进,其依据的是浏览器历史记录中的url

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值