跳至主要內容

Chromium

isAlertOpen

是否目前有簡易對話框開啟。

非官方且未記錄的 Chromium 命令。有關此命令的更多資訊,請參閱這裡

用法
browser.isAlertOpen()
範例
console.log(browser.isAlertOpen()); // outputs: false
browser.execute('window.alert()');
console.log(browser.isAlertOpen()); // outputs: true
回傳值
  • <Boolean> isAlertOpen: 根據是否有簡易對話框顯示,回傳 truefalse

isAutoReporting

是否應自動引發瀏覽器記錄中的錯誤。

非官方且未記錄的 Chromium 命令。有關此命令的更多資訊,請參閱這裡

用法
browser.isAutoReporting()
回傳值
  • <Boolean> isAutoReporting: 根據是否啟用自動回報,回傳 truefalse

setAutoReporting

切換是否要針對所有後續命令 (一旦啟用) 回傳帶有第一個瀏覽器錯誤 (例如,因 403/404 回應而無法載入資源) 的未知錯誤回應。

非官方且未記錄的 Chromium 命令。有關此命令的更多資訊,請參閱這裡

用法
browser.setAutoReporting(enabled)
參數
名稱類型詳細資訊
enabledboolean如果應啟用自動回報,則為 true;使用 false 停用先前啟用的自動回報。
範例
// Enable auto reporting first thing after session was initiated with empty browser logs
console.log(browser.setAutoReporting(true)); // outputs: null
// Upon requesting an non-existing resource it will abort execution due to thrown unknown error
browser.url('https://webdriverio.dev.org.tw/img/404-does-not-exist.png');
// During the session do some operations which populate the browser logs
browser.url('https://webdriverio.dev.org.tw/img/404-does-not-exist.png');
browser.url('https://webdriverio.dev.org.tw/403/no-access');
// Enable auto reporting which throws an unknown error for first browser log (404 response)
browser.setAutoReporting(true);
回傳值
  • <Object|Null> firstBrowserError: 如果在執行此命令之前已發生第一個瀏覽器錯誤,則會擲回未知錯誤作為回應,此回應是一個具有「message」鍵,用來描述第一個瀏覽器錯誤的物件。否則,成功時會傳回 null

isLoading

判斷活動視窗控制代碼的載入狀態。

非官方且未記錄的 Chromium 命令。有關此命令的更多資訊,請參閱這裡

用法
browser.isLoading()
範例
console.log(browser.isLoading()); // outputs: false
browser.newWindow('https://webdriverio.dev.org.tw');
console.log(browser.isLoading()); // outputs: true
回傳值
  • <Boolean> isLoading: 根據活動視窗控制代碼是否正在載入,回傳 truefalse

takeHeapSnapshot

取得目前執行內容的堆積快照。

非官方且未記錄的 Chromium 命令。有關此命令的更多資訊,請參閱這裡

用法
browser.takeHeapSnapshot()
回傳值
  • <Object> heapSnapshot: 堆積快照的 JSON 表示法。可以透過將檔案載入 Chrome 開發人員工具中來檢查。

getNetworkConnection

取得網路模擬的連線類型。只有在遠端以設定為 truenetworkConnectionEnabled 功能回覆時,此命令才適用。

非官方且未記錄的 Chromium 命令。有關此命令的更多資訊,請參閱這裡

用法
browser.getNetworkConnection()
範例
const browser = remote({
capabilities: {
browserName: 'chrome',
'goog:chromeOptions': {
// Network emulation requires device mode, which is only enabled when mobile emulation is on
mobileEmulation: { deviceName: 'iPad' },
},
}
});
console.log(browser.getNetworkConnection()); // outputs: 6 (Both Wi-Fi and data)
回傳值
  • <Number> connectionType: 表示網路連線類型的位元遮罩。飛航模式 (1)、僅限 Wi-Fi (2)、Wi-Fi 和數據 (6)、4G (8)、3G (10)、2G (20)。預設情況下,會啟用 Wi-Fi 和數據

setNetworkConnection

變更網路連線的連線類型。只有在遠端以設定為 truenetworkConnectionEnabled 功能回覆時,此命令才適用。

非官方且未記錄的 Chromium 命令。有關此命令的更多資訊,請參閱這裡

用法
browser.setNetworkConnection(parameters)
參數
名稱類型詳細資訊
參數物件包含 ConnectionType 的物件,將位元遮罩設定為物件中 type 鍵的值。飛航模式 (1)、僅限 Wi-Fi (2)、Wi-Fi 和數據 (6)、4G (8)、3G (10)、2G (20)。
範例
const browser = remote({
capabilities: {
browserName: 'chrome',
'goog:chromeOptions': {
// Network emulation requires device mode, which is only enabled when mobile emulation is on
mobileEmulation: { deviceName: 'iPad' },
},
}
});
console.log(browser.setNetworkConnection({ type: 1 })); // outputs: 1 (Airplane Mode)
回傳值
  • <Number> connectionType: 表示網路連線類型的位元遮罩。值應與物件中指定的 type 相符,但裝置可能無法使用要求的網路連線類型。

getNetworkConditions

取得用於模擬的目前網路條件。

非官方且未記錄的 Chromium 命令。有關此命令的更多資訊,請參閱這裡

用法
browser.getNetworkConditions()
回傳值
  • <Object> networkConditions: 包含 offlinelatencydownload_throughputupload_throughput 的網路條件物件。必須先設定網路條件才能擷取。

setNetworkConditions

透過限制連線,設定用於模擬的網路條件。

非官方且未記錄的 Chromium 命令。有關此命令的更多資訊,請參閱這裡

用法
browser.setNetworkConditions(network_conditions, network_name)
參數
名稱類型詳細資訊
network_conditions物件包含 latencythroughput (或 download_throughput/upload_throughput) 和 offline (選用) 的網路條件物件。
network_name
選用
字串網路限制預設的名稱。GPRSRegular 2GGood 2GRegular 3GGood 3GRegular 4GDSLWiFiNo throttling 以停用。指定預設值時,不採用在第一個引數中傳遞的值。
範例
// Use different download (25kb/s) and upload (50kb/s) throughput values for throttling with a latency of 1000ms
browser.setNetworkConditions({ latency: 1000, download_throughput: 25600, upload_throughput: 51200 });
// Force disconnected from network by setting 'offline' to true
browser.setNetworkConditions({ latency: 0, throughput: 0, offline: true });
// When preset name (e.g. 'DSL') is specified it does not respect values in object (e.g. 'offline')
browser.setNetworkConditions({ latency: 0, throughput: 0, offline: true }, 'DSL');
// Best practice for specifying network throttling preset is to use an empty object
browser.setNetworkConditions({}, 'Good 3G');

deleteNetworkConditions

停用可能已設定的任何網路限制。相當於設定 No throttling 預設。

非官方且未記錄的 Chromium 命令。有關此命令的更多資訊,請參閱這裡

用法
browser.deleteNetworkConditions()

sendCommand

將命令傳送至 DevTools 偵錯工具。
如需可用命令及其參數的清單,請參閱Chrome DevTools Protocol Viewer

非官方且未記錄的 Chromium 命令。有關此命令的更多資訊,請參閱這裡

用法
browser.sendCommand(cmd, params)
參數
名稱類型詳細資訊
cmd字串指令名稱 (例如 Browser.close)。
params物件指令的參數。如果指令沒有參數,請指定一個空物件。

sendCommandAndGetResult

傳送指令至 DevTools 除錯器並等待結果。
如需可用命令及其參數的清單,請參閱Chrome DevTools Protocol Viewer

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.sendCommandAndGetResult(cmd, params)
參數
名稱類型詳細資訊
cmd字串會回傳結果的指令名稱 (例如 Network.getAllCookies)。
params物件指令的參數。如果指令沒有參數,請指定一個空物件。
回傳
  • <*> result: 您的指令的回傳值,或是造成指令失敗的錯誤原因。

file

上傳檔案至執行瀏覽器的遠端機器。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.file(file)
參數
名稱類型詳細資訊
file字串Base64 編碼的 zip 壓縮檔,其中包含要上傳的單一檔案。如果 base64 編碼的資料並非 zip 壓縮檔,或是壓縮檔包含多個檔案,則會拋出未知錯誤。
回傳
  • <String> path: 遠端機器上已上傳檔案的絕對路徑。

launchChromeApp

透過指定的 ID 啟動 Chrome 應用程式。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.launchChromeApp(id)
參數
名稱類型詳細資訊
id字串要啟動的應用程式的擴充功能 ID,定義於 chrome://extensions。
範例
import fs from 'fs'
const browser = remote({
capabilities: {
browserName: 'chrome',
'goog:chromeOptions': {
// Install upon starting browser in order to launch it
extensions: [
// Entry should be a base64-encoded packed Chrome app (.crx)
fs.readFileSync('/absolute/path/app.crx').toString('base64')
]
}
}
});
browser.launchChromeApp('aohghmighlieiainnegkcijnfilokake')); // Google Docs (https://chrome.google.com/webstore/detail/docs/aohghmighlieiainnegkcijnfilokake)

getElementValue

擷取指定表單控制元素的值。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.getElementValue(elementId)
參數
名稱類型詳細資訊
elementId字串要取得值的元素 ID
回傳
  • <String|Null> value: 元素的目前值。如果指定的元素不是表單控制元素,則會回傳 null

elementHover

啟用元素的懸停狀態,該狀態會在下次互動時重設。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.elementHover(elementId)
參數
名稱類型詳細資訊
elementId字串要懸停的元素 ID

touchPinch

觸發捏合縮放效果。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.touchPinch(x, y, scale)
參數
名稱類型詳細資訊
x數字捏合的 x 座標位置
y數字捏合的 y 座標位置
scale數字捏合縮放比例

freeze

凍結目前的頁面。頁面生命週期 API 的擴充功能。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.freeze()

resume

恢復目前的頁面。頁面生命週期 API 的擴充功能。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.resume()

getCastSinks

回傳 Chrome 媒體路由器可用的投放接收器 (投放裝置) 清單。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.getCastSinks()
回傳
  • <string[]> sinks: 可用接收器清單。

selectCastSink

選取一個投放接收器 (投放裝置) 作為媒體路由器意圖 (連線或播放) 的接收者。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.selectCastSink(sinkName)
參數
名稱類型詳細資訊
sinkName字串目標裝置的名稱。

startCastTabMirroring

在指定的裝置上啟動目前瀏覽器分頁的分頁鏡像。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.startCastTabMirroring(sinkName)
參數
名稱類型詳細資訊
sinkName字串目標裝置的名稱。

getCastIssueMessage

如果投放工作階段有任何問題,則回傳錯誤訊息。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.getCastIssueMessage()
回傳
  • <String> message: 錯誤訊息 (若有的話)。

stopCasting

如果已連線,則停止從媒體路由器向指定裝置進行投放。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.stopCasting(sinkName)
參數
名稱類型詳細資訊
sinkName字串目標裝置的名稱。

shutdown

關閉 ChromeDriver 處理序,並因此終止所有活動中的工作階段。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.shutdown()

takeElementScreenshot

「擷取元素螢幕截圖」指令會擷取元素邊界矩形所包圍的可見區域的螢幕截圖。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

用法
browser.takeElementScreenshot(elementId, scroll)
參數
名稱類型詳細資訊
elementId字串先前呼叫「尋找元素」所回傳的元素 ID
scroll
選用
boolean將元素捲動至可見區域。預設值:true
回傳
  • <String> screenshot: base64 編碼的 PNG 影像資料,其中包含將元素捲動至可見區域之後,元素邊界矩形可見區域的螢幕截圖。

getLogTypes

取得可用的記錄類型。

非官方且未公開的 Chromium 指令。關於此指令的更多資訊請見此處

使用方式
browser.getLogTypes()
回傳值
  • <字串陣列> logTypes: 可用的日誌類型列表,例如:browser、driver。

getLogs

取得指定日誌類型的日誌。每次請求後會重設日誌緩衝區。

非官方且未經文件化的 Chromium 命令。更多關於此命令的資訊請參閱這裡

使用方式
browser.getLogs(type)
參數
名稱類型詳細資訊
type字串日誌類型
回傳值
  • <物件陣列> logs: 日誌條目列表。

歡迎!我能幫你什麼嗎?

WebdriverIO AI Copilot