美文网首页
Cypress 基础 - 元素的定位

Cypress 基础 - 元素的定位

作者: 华山令狐冲 | 来源:发表于2021-12-22 09:30 被阅读0次

Cypress basics: Selecting elements

Selecting a single element

语法:

cy.get('.selector')

首先,让我们看看 .selector 部分的内容。 Cypress 通过查询 DOM 来选择元素。 如果您曾经玩过 CSS 或使用过 jQuery,或者如果您熟悉 JavaScript 中的 document.querySelector 命令,您可能已经熟悉此类选择器。 让我们看看这是什么意思。 作为一个例子,我们可以查看一个看起来像这样的页面:

页面代码如下:

<h1>Shapes:</h1>
<div class="square"></div>
<div id="circle"></div>
<div shape="triangle"></div>

我们可以使用 h1 标签选择一个元素。 如果我们想选择我们的一个形状,我们可以使用类、id 或属性来选择单个元素。

cy
  .get('h1') // select by tag
  .get('.square') // select by class
  .get('#circle') // select by id
  .get('[shape="triangle"]'); // select by attribute

要按类选择元素,您需要使用 . 前缀并通过它选择一个元素,你应该在 id 前面加上#。 您可能会在页面上找到的最常见属性是输入的占位符,甚至是测试 ID,其中您的选择器以方括号开始和结束。 如果选择我们选择在我们的页面上多次找到的元素,例如我们的 div 元素,Cypress 将选择所有三个。

Select elements by filtering

这是一个比较有用的操作。

一旦你选择了多个元素(例如通过 .get('li') 命令,它返回 7 个元素),你可以根据另一个选择器在这些元素中进行过滤。 下面的代码将只选择红色、绿色和蓝色,因为这些是原色并且它们有一个类 .primary。

cy
  .get('li')
  .filter('.primary') // select all elements with the class .primary

要做完全相反的事情,您可以使用 .not() 命令。 使用此命令,您将选择除红绿蓝之外的所有颜色。

cy
  .get('li')
  .not('.primary') // select all elements without the class .primary

Finding elements

您可以通过首先选择要在其中搜索的元素来指定选择器,然后向下查看 DOM 结构以找到您要查找的特定元素。

cy
  .get('.list')
  .find('.violet') // finds an element with class .violet inside .list element

如果您已经在使用属性来标记您的元素,这里有一个提示。 您可以创建一个自定义命令,该命令将通过例如选择您的元素 数据-cy 属性:

Cypress.Commands.add('getById', (input) => {

  cy
    .get(`[data-cy=${input}]`)

})

消费:

cy
  .getById('indigo')

下图是 SAP 电商云 Spartacus UI Cypress 的一个例子:

在使用 click 方法触发 continue button 点击事件之前,我们先得检查其是否处于可点击状态,即 disabled 属性必须为 null.

更多Jerry的原创文章,尽在:"汪子熙":


相关文章

  • Cypress 基础 - 元素的定位

    Cypress basics: Selecting elements[https://filiphric.com/...

  • Cypress 那点事

    Cypress 初体验Cypress 测试用例的一些编写技巧Cypress 查找元素的一些技巧Cypress Ex...

  • css selector选择器

    css selector在比较多的爬虫工具中使用,掌握很有必要 基础定位 元素与元素之间的关系定位 兄弟元素定位 ...

  • WEB自动化-05-Cypress-元素交互

    5 元素交互     元素识别和操作是UI自动化测试的基础,下面一起来学习一下在Cypress中的元素交互操作吧。...

  • Position

    HTML5之基础position(定位) position 属性规定元素的定位类型,决定位置偏移属性,具体效果...

  • 2018-04-28 selenium2+Python学习

    简单对象的定位 对象(元素)的定位和操作是自动化测试的核心部分,其中操作又是建立在定位的基础上的,因此元素定位就显...

  • 【转载】css水平垂直居中

    样本: 基础样式: 水平居中:margin|定位法 1.margin方法 条件: 元素定宽 元素为块级元素(...

  • selenium自动化操作之三:元素定位和操作

    元素(对象)的定位和操作是自动化测试的核心部分,其中操作是建立在定位的基础上的,因此元素的定位就显得非常重要。 一...

  • CSS选择器

    #id和.class的区别 #id定位到页面上唯一的元素,.class定位到页面上某一类的元素 常见的选择器 基础...

  • selenium 元素常用操作详解

    简介: 我们在做Web自动化时,最根本的就是操作页面上的各种元素,而操作的基础就是元素的定位,只有准确地定位到唯一...

网友评论

      本文标题:Cypress 基础 - 元素的定位

      本文链接:https://www.haomeiwen.com/subject/djelxrtx.html