Cypress 中的 get 和 find 命令
Cypress 具有 get() 和 find() 方法,用于根据页面上的定位器查找元素。这两种方法实现的目标几乎相同。get() 方法借助指定为该方法参数的 css 定位器获取一个或一组 Web 元素。
语法
cy.get(selector, args)
get() 方法的第二个参数是可选的。它可以有以下三种类型的参数:
log - log 参数的默认值为 true。这决定了是否会在控制台上记录命令。
cy.get('.product', { log: false });withinSubject - withinSubject 参数的默认值为 null。这决定了应该从页面上的哪个位置搜索元素。如果省略,则从元素根开始。
cy.get('.p',{ withinSubject : document.getElementById('#id')};timeout - timeout 参数的默认值为 defaultCommandTimeout(4000 毫秒)。这决定了在抛出错误之前获取元素的等待时间。
cy.get('.p',{ timeout: 5000 });我们可以从 get() 方法获取元素列表。在元素列表或数组中,我们必须借助 eq() 方法选择其中一个。eq() 方法从索引 0 开始获取特定索引处的 DOM 元素。
cy.get('.p') .eq(2).should('contain', 'Tutorialspoint');find() 方法获取与作为参数传递的选择器匹配的一个或多个元素。get() 和 find() 方法的区别在于,find() 方法需要与其他方法(如 get())链接使用。它不能独立与 cy 对象一起使用。
语法
.find(selector, args)
find() 方法的第二个参数是可选的。它可以有以下两种类型的参数:
log - log 参数的默认值为 true。这决定了是否会在控制台上记录命令。
cy.get('#parent').find('img', { log: false });timeout - timeout 参数的默认值为 defaultCommandTimeout(4000 毫秒)。这决定了在抛出错误之前获取元素的等待时间。
cy.get('#parent').find('img', timeout: 5000 });find() 命令有助于定位嵌套在另一个元素中的元素,或者大多数情况下,如果它们具有父子关系。find() 方法有助于以更快速有效的方式定位元素。
示例
使用 get 和 find 方法的代码实现。
// test suite
describe('Tutorialspoint Test', function () {
// test case
it('Test Case1', function (){
// test step to launch a URL
cy.visit("https://tutorialspoint.com/index.htm");
// enter test in the edit box
// assertion to validate the number of child elements
cy.get('#gs_50d > tbody > tr > td'). should('have.length',2);
// locate element with get and find method
cy.get('#gs_50d > tbody > tr > td'). find('input')
//enter test in the edit box
.type('Cypress');
});
});
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP