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

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

在 Cypress 中,您如何測試一個屬性是否等于多個值之一?

在 Cypress 中,您如何測試一個屬性是否等于多個值之一?

元芳怎么了 2021-06-30 13:54:12
我們正在 Cypress 中為一個網站運行一些測試。在 Windows 上的 Chrome 中,測試全部通過。然而,在 Mac 上,某些元素的寬度比在 Windows 上時寬 2px。我知道這不應該是這種情況,我們將分別進行調查,但我想知道的是,您如何測試測試值是否應落在某個值范圍內?這是在 Windows 中通過的測試:it('checks Headline container, width & horizontal spacing', () => {  cy.get('[data-cy=headline]')    .should('have.css', 'width', '569px')})這個在 Mac 上通過。唯一的變化是寬度571px代替了569px。it('checks Headline container, width & horizontal spacing', () => {  cy.get('[data-cy=headline]')    .should('have.css', 'width', '571px')})鑒于實際should()測試是針對一個字符串,您將如何測試寬度是兩個字符串中的一個?還是實際的值范圍?
查看完整描述

2 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

你可以用closeTo它。它看起來像這樣:


it('checks Headline container, width & horizontal spacing', () => {

  cy.get('[data-cy=headline]')

    .then($element => {

    expect($element.width())

      .closeTo(569, 2)

    })

})

第一個數字closeTo是希望的數字,第二個數字是邊距。例如:如果你有.closeTo(600, 150)實際數字應該在 450 到 750 之間。所以它不是一個非常具體的檢查。


查看完整回答
反對 回復 2021-07-01
?
慕沐林林

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

我想我已經為我的特定用例找到了更好的答案,盡管我真的很喜歡有一種closeTo()方法可用。


我是這樣解決問題的:


  it('checks Headline container, width & horizontal spacing', () => {

    cy.get('[data-cy=headline]')

      .should('have.css', 'width').and('match', /^(569|571)px/)

  })

我使用正則表達式來匹配字符串569px和571px.


這使我們能夠繼續should()用于測試,同時確保該值與我們期望的兩個特定大小之一匹配。


查看完整回答
反對 回復 2021-07-01
  • 2 回答
  • 0 關注
  • 286 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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