概述

使用 ChromeDriver 在 Chrome 中執行 Nightwatch.js 測試。

在本指南中,您將了解

  • 下載 ChromeDriver
  • 支援的 Chrome 功能
  • 支援的 Chrome 偏好設定
  • 在 Docker 中使用 Chrome

下載

步驟 1. 下載 ChromeDriver - 從 下載頁面下載適用於您平台的最新版 ChromeDriver。

步驟 2. 設定路徑 - 在您的 nightwatch.json 檔案中,於 webdriver 物件下設定 ChromeDriver 二進位檔的位置,如下所示


"webdriver" : {
  "server_path" : "/path/to/chromedriver"
}

支援的 Chrome 功能

下表列出所有 Chrome 專用的所需功能,這些功能都位於 ChromeOptions 字典下。

名稱 類型 說明
args 字串陣列 啟動 Chrome 時要使用的命令列引數清單。具有關聯值的引數應以 '=' 符號分隔(例如,["start-maximized", "user-data-dir=/tmp/temp_profile"])。
binary 字串 要使用的 Chrome 可執行檔的路徑(在 Mac OS X 上,這應該是實際的二進位檔,而不僅僅是應用程式。例如,'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome')
extensions 字串陣列 要在啟動時安裝的 Chrome 擴充功能清單。清單中的每個項目都應該是經過 base-64 編碼的已封裝 Chrome 擴充功能 (.crx)

Nightwatch 支援 ChromeDriver 提供的所有引數和功能。

請參閱 官方 ChromeDriver 文件,以了解有關這些功能的更多資訊。

您可以參考此命令列開關清單,您可以將這些開關作為 args 傳遞至 nightwatch.json 檔案中 desiredCapabilities 索引鍵下的 chromeOptions 索引鍵,如下所示


"desiredCapabilities" : {
  "browserName" : "chrome",
  "javascriptEnabled" : true,
  "acceptSslCerts" : true,
  "chromeOptions" : {
    "args" : ["start-fullscreen"]
  }
}

支援的使用者偏好設定

除了使用 args 索引鍵設定的命令列開關之外,您還可以透過 prefs 索引鍵傳遞 Chrome 設定檔偏好設定。

以下程式碼片段顯示如何在 nightwatch.json 檔案中設定偏好設定(如果您想要停用瀏覽器的密碼管理員功能)


"desiredCapabilities" : {
  "browserName" : "chrome",
  "javascriptEnabled" : true,
  "acceptSslCerts" : true,
  "chromeOptions" : {
    "prefs" : {
      "credentials_enable_service" : false,
      "profile.password_manager_enabled" : false
    }
  }
}

使用在 Docker 容器中執行的 Chrome

如果您的測試需要一個在 Docker 容器內執行的 Chrome 執行個體,請務必將 --no-sandbox 值新增至 args 物件,才能從 Docker 容器存取 Chrome 二進位檔。


"chromeOptions" : {
  "args" : ["--no-sandbox"]
}