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.tw/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