Chromium
isAlertOpen
是否当前打开了简单的对话框。
非官方且未记录的 Chromium 命令。有关此命令的更多信息,请参见此处。
用法
browser.isAlertOpen()
示例
console.log(browser.isAlertOpen()); // outputs: false
browser.execute('window.alert()');
console.log(browser.isAlertOpen()); // outputs: true
返回值
- <布尔值>
isAlertOpen
: 根据是否存在简单对话框返回true
或false
。
isAutoReporting
是否应在浏览器日志上自动引发错误。
非官方且未记录的 Chromium 命令。有关此命令的更多信息,请参见此处。
用法
browser.isAutoReporting()
返回值
- <布尔值>
isAutoReporting
: 根据是否启用了自动报告返回true
或false
。
setAutoReporting
切换是否在所有后续命令中(启用后)返回带有未知错误的响应以及第一个浏览器错误(例如,由于 403/404 响应导致资源加载失败)。
非官方且未记录的 Chromium 命令。有关此命令的更多信息,请参见此处。
用法
browser.setAutoReporting(enabled)
参数
名称 | 类型 | 详情 |
---|---|---|
enabled | 布尔值 | 如果应启用自动报告,则为 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.node.org.cn/img/404-does-not-exist.png');
// During the session do some operations which populate the browser logs
browser.url('https://webdriverio.node.org.cn/img/404-does-not-exist.png');
browser.url('https://webdriverio.node.org.cn/403/no-access');
// Enable auto reporting which throws an unknown error for first browser log (404 response)
browser.setAutoReporting(true);
返回值
- <对象|空>
firstBrowserError
: 如果在执行此命令之前已发生第一个浏览器错误,它将抛出未知错误作为响应,该错误是一个包含描述第一个浏览器错误的“message”键的对象。否则,在成功时返回null
。
isLoading
确定活动窗口句柄的加载状态。
非官方且未记录的 Chromium 命令。有关此命令的更多信息,请参见此处。
用法
browser.isLoading()
示例
console.log(browser.isLoading()); // outputs: false
browser.newWindow('https://webdriverio.node.org.cn');
console.log(browser.isLoading()); // outputs: true
返回值
- <布尔值>
isLoading
: 根据活动窗口句柄是否正在加载返回true
或false
。
takeHeapSnapshot
获取当前执行上下文的堆快照。
非官方且未记录的 Chromium 命令。有关此命令的更多信息,请参见此处。
用法
browser.takeHeapSnapshot()
返回值
- <对象>
heapSnapshot
: 堆快照的 JSON 表示形式。可以通过将其作为文件加载到 Chrome DevTools 中进行检查。
getNetworkConnection
获取网络模拟的连接类型。仅当远程端回复时,此命令才适用networkConnectionEnabled
功能设置为true
。
非官方且未记录的 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)
返回值
- <数字>
connectionType
: 用于表示网络连接类型的位掩码。飞行模式 (1
)、仅 Wi-Fi (2
)、Wi-Fi 和数据 (6
)、4G (8
)、3G (10
)、2G (20
)。默认情况下已启用 Wi-Fi 和数据。
setNetworkConnection
更改网络连接的连接类型。仅当远程端回复时,此命令才适用networkConnectionEnabled
功能设置为true
。
非官方且未记录的 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)
返回值
- <数字>
connectionType
: 用于表示网络连接类型的位掩码。值应与对象中指定的type
匹配,但设备可能无法实现请求的网络连接类型。
getNetworkConditions
获取用于模拟的当前网络条件。
非官方且未记录的 Chromium 命令。有关此命令的更多信息,请参见此处。
用法
browser.getNetworkConditions()
返回值
- <对象>
networkConditions
: 包含offline
、latency
、download_throughput
和upload_throughput
网络条件的对象。必须设置网络条件才能检索它。
setNetworkConditions
通过限制连接来设置用于模拟的网络条件。
非官方且未记录的 Chromium 命令。有关此命令的更多信息,请参见此处。
用法
browser.setNetworkConditions(network_conditions, network_name)
参数
名称 | 类型 | 详情 |
---|---|---|
network_conditions | 对象 | 包含网络条件的对象,这些条件为 latency 、throughput (或 download_throughput /upload_throughput )和 offline (可选)。 |
network_name 可选 | 字符串 | 网络限流预设的名称。GPRS 、Regular 2G 、Good 2G 、Regular 3G 、Good 3G 、Regular 4G 、DSL 、WiFi 或 No 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 协议查看器。
非官方且未记录的 Chromium 命令。有关此命令的更多信息,请参阅此处。
用法
browser.sendCommand(cmd, params)
参数
名称 | 类型 | 详情 |
---|---|---|
cmd | 字符串 | 命令的名称(例如 Browser.close )。 |
params | 对象 | 命令的参数。如果命令没有参数,则指定一个空对象。 |
sendCommandAndGetResult
向 DevTools 调试器发送命令并等待结果。
有关可用命令及其参数的列表,请参阅Chrome DevTools 协议查看器。
非官方且未记录的 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 | 字符串 | 之前调用查找元素(Find Element(s))返回的元素的 ID |
scroll 可选 | 布尔值 | 将元素滚动到视图中。默认值:true |
返回值
- <String>
screenshot
: 包含元素边界矩形的可见区域屏幕截图的 Base64 编码的 PNG 图像数据,在将其滚动到视图中后。
getLogTypes
获取可用的日志类型。
非官方且未记录的 Chromium 命令。有关此命令的更多信息,请参阅此处。
用法
browser.getLogTypes()
返回值
- <String[]>
logTypes
: 可用日志类型的列表,例如:浏览器、驱动程序。
getLogs
获取给定日志类型的日志。每次请求后,日志缓冲区都会重置。
非官方且未记录的 Chromium 命令。有关此命令的更多信息,请参见此处。
用法
browser.getLogs(type)
参数
名称 | 类型 | 详情 |
---|---|---|
type | 字符串 | 日志类型 |
返回值
- <Object[]>
logs
: 日志条目的列表。