1. 程式人生 > 實用技巧 >Cypress系列(43)- visit() 命令詳解

Cypress系列(43)- visit() 命令詳解

如果想從頭學起Cypress,可以看下面的系列文章哦

https://www.cnblogs.com/poloyy/category/1768839.html

作用

訪問遠端 URL

語法格式

cy.visit(url)
cy.visit(url, options)
cy.visit(options)

引數講解

url

兩種值

  1. 需要直接訪問的 URL,可以是一個完整的 URL,比如:https://www.cnblogs.com/poloyy/
  2. html 檔案的相對路徑,路徑是相對於 Cypress 的安裝目錄,不需要file://字首

Cypress關於 url 的最佳實踐

  • 建議在使用cy.visit()
    時,在 cypress.json裡設定一個baseUrl
  • baseUrl 相當於一個全域性共享的 host,在使用visit()request()等命令時自動將 baseUrl 傳遞進去
  • 優勢:首次啟動 Cypress 測試時,新增 baseUrl 還可以節省一些時間

不新增 baseUrl 的影響

一旦遇到cy.visit(),Cypress 便將主視窗的 URL 切換到訪問指定的 URL,首次開始測試時,可能會導致重新整理或重新載入

新增 baseUrl 的優勢

  • 通過設定 baseUrl,可以完全避免重新載入
  • 測試開始後,Cypress 會將主視窗載入到您指定的 baseUrl 中

新增 baseUrl

baseUrl 未執行

如果在 cypress 開啟期間,指定了 baseUrl ,但伺服器未執行,則會看到錯誤

如果在 cypress 執行期間幾次重試後,伺服器未在指定的 baseUrl 上執行,也會顯示錯誤

其他引數 options

引數

預設

作用

method

GET

請求方法,GET或POST

body

null

l與POST請求一起傳送的資料體

l如果是字串,則將其原封不動地傳遞

l如果是一個物件,它將被URL編碼為字串,並加上Content-Type:application / x-www-urlencoded

headers

{}

請求頭

qs

null

Url的請求引數

log

true

是否列印日誌

auth

null

新增基本授權標頭

failOnStatusCode

true

是否在2xx和3xx以外的響應程式碼上標識為失敗

onBeforeLoad

function

在頁面載入所有資源之前呼叫指定的方法

onLoad

function

頁面觸發載入事件後呼叫

retryOnStatusCodeFailure

false

當狀態碼是錯誤碼時,Cypress是否自動重試,最多重試4次

retryOnNetworkFailure

true

當網路錯誤時,Cypress是否自動重試,最多重試4次

timeout

pageLoadTimeout

最長等待 .visit() 完成的時間

正確寫法

// 在新的視窗開啟 URL
cy.visit('http://localhost:3000')  
cy.visit('./pages/hello.html')

具體的栗子

直接訪問

加上 timeout 引數

加上 auth

加上 onBeforeLoad

加上 onLoad

加上 qs

加上 method 和 body

使用 window 物件