亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Cypress - find() 和 inside() 方法之間的區別

Cypress - find() 和 inside() 方法之間的區別

斯蒂芬大帝 2023-08-18 10:12:45
使用這兩種方法之間有什么區別:cy.get('.wtv').find('.sub-wtv');cy.get('.wtv').within(() => {cy.get('.sub-wtv');});來自文檔https://docs.cypress.io/api/commands/find.htmlhttps://docs.cypress.io/api/commands/within.html它們都讓我們可以使用“子 DOM”,在其中我們可以做任何我們想做的事情,比如搜索特定元素并斷言它。
查看完整描述

2 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

.find()用于單個元素的搜索,但僅限于該元素的操作

.within()允許您更改搜索子元素的范圍并直接使用 調用它們cy.get('subelementSelector'),也可以使用它們。缺點是,您無法從父元素范圍之外調用元素。

那么第三種方法就是?。cy.get('elementSelector').then(element=>{//some code})- 這允許您將元素傳遞給函數以供使用。您可以使用 搜索其中的子元素cy.get(element).find('subelementSelector')。您還可以對位于父元素范圍之外的元素使用常用命令。它的語法更長,但范圍更大。

編輯:?澄清一下?.find()- 允許元素的單次使用?.within(passedFunction()=>{})- 將 passFunction 的 DOM 元素的范圍更改為子元素?.then(element=>{})- 不會更改范圍,但會創建該變量的 JQ 變量,可在then 函數?cy.get('parentSelector childSelector')- 是獲得與以下相同結果的 css 方法.find()


查看完整回答
反對 回復 2023-08-18
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

查找:


獲取特定選擇器的后代 DOM 元素。find() 方法始終與返回 DOM 元素的其他方法鏈接,并且永遠不會與“cy”對象鏈接。


 .find(selector)

 .find(selector, options)


 cy.get('.article').find('footer') // Yield 'footer' within '.article'

以內:


它對我們想要在父 Web 元素內搜索 Web 元素的情況進行排序。它將所有后續 cy 命令的范圍限制在父元素內。在特定的元素組(例如表單)中工作時很有用。這是用回調函數編寫的,例如。在(callbackFn)內。


 .within(callbackFn)

 .within(options, callbackFn)


 cy.get('.list').within(($list) => {}) // Yield the `.list` and scope all commands within it


   // validate placeholder attributes

   cy.get('.query-form').within(() => {

   cy.get('input:first').should('have.attr', 'placeholder', 'Email')

   cy.get('input:last').should('have.attr', 'placeholder', 'Password')

     })


查看完整回答
反對 回復 2023-08-18
  • 2 回答
  • 0 關注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號