Chromium
isAlertOpen
判断是否有简单对话框当前打开。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.isAlertOpen()
示例
console.log(browser.isAlertOpen()); // 输出: false
browser.execute('window.alert()');
console.log(browser.isAlertOpen()); // 输出: true
返回
- <Boolean>
isAlertOpen
: 根据简单对话框是否存在返回true
或false
。
isAutoReporting
是否自动在浏览器日志上报错误。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.isAutoReporting()
返回
- <Boolean>
isAutoReporting
: 根据自动报告是否启用返回true
或false
。
setAutoReporting
切换是否为所有后续命令返回带有未知错误的响应,其中包含第一个浏览器错误(例如由于403/404响应而导致的资源加载失败)(一旦启用)。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.setAutoReporting(enabled)
参数
名称 | 类型 | 详情 |
---|---|---|
enabled | boolean | 如果应启用自动报告则为true ,使用false 禁用先前启用的自动报告。 |
示例
// 在会话初始化后,浏览器日志为空时首先启用自动报告
console.log(browser.setAutoReporting(true)); // 输出: null
// 请求不存在的资源时,由于抛出未知错误而中止执行
browser.url('https://webdriver.io/img/404-does-not-exist.png');
// 在会话期间执行一些操作,填充浏览器日志
browser.url('https://webdriver.io/img/404-does-not-exist.png');
browser.url('https://webdriver.io/403/no-access');
// 启用自动报告,为第一个浏览器日志(404响应)抛出未知错误
browser.setAutoReporting(true);
返回
- <Object|Null>
firstBrowserError
: 如果在执行此命令之前已经发生第一个浏览器错误,它将抛出一个未知错误作为响应,这是一个带有'message'键的对象,描述第一个浏览器错误。否则,成功时返回null
。
isLoading
确定活动窗口句柄的加载状态。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.isLoading()
示例
console.log(browser.isLoading()); // 输出: false
browser.newWindow('https://webdriver.io');
console.log(browser.isLoading()); // 输出: true
返回
- <Boolean>
isLoading
: 根据活动窗口句柄是否正在加载返回true
或false
。
takeHeapSnapshot
拍摄当前执行上下文的堆快照。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.takeHeapSnapshot()
返回
- <Object>
heapSnapshot
: 堆快照的JSON表示。可以通过将其作为文件加载到Chrome DevTools中进行检查。
getNetworkConnection
获取网络模拟的连接类型。此命令仅适用于远程端回复networkConnectionEnabled
功能设置为true
的情况。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.getNetworkConnection()
示例
const browser = remote({
capabilities: {
browserName: 'chrome',
'goog:chromeOptions': {
// 网络模拟需要设备模式,只有在移动模拟开启时才启用
mobileEmulation: { deviceName: 'iPad' },
},
}
});
console.log(browser.getNetworkConnection()); // 输出: 6 (同时启用Wi-Fi和数据)
返回
- <Number>
connectionType
: 表示网络连接类型的位掩码。飞行模式(1
),仅Wi-Fi(2
),Wi-Fi和数据(6
),4G(8
),3G(10
),2G(20
)。默认情况下启用Wi-Fi和数据。
setNetworkConnection
更改网络连接的连接类型。此命令仅适用于远程端回复networkConnectionEnabled
功能设置为true
的情况。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.setNetworkConnection(parameters)
参数
名称 | 类型 | 详情 |
---|---|---|
parameters | object | 包含ConnectionType的对象,在对象中将位掩码设置为type 键的值。飞行模式(1 ),仅Wi-Fi(2 ),Wi-Fi和数据(6 ),4G(8 ),3G(10 ),2G(20 )。 |
示例
const browser = remote({
capabilities: {
browserName: 'chrome',
'goog:chromeOptions': {
// 网络模拟需要设备模式,只有在移动模拟开启时才启用
mobileEmulation: { deviceName: 'iPad' },
},
}
});
console.log(browser.setNetworkConnection({ type: 1 })); // 输出: 1 (飞行模式)
返回
- <Number>
connectionType
: 表示网络连接类型的位掩码。值应与对象中指定的type
匹配,但设备可能不支持所请求的网络连接类型。
getNetworkConditions
获取用于模拟的当前网络条件。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.getNetworkConditions()
返回
- <Object>
networkConditions
: 包含offline
、latency
、download_throughput
和upload_throughput
网络条件的对象。必须先设置网络条件才能获取。
setNetworkConditions
通过节流连接设置用于模拟的网络条件。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.setNetworkConditions(network_conditions, network_name)
参数
名称 | 类型 | 详情 |
---|---|---|
network_conditions | object | 包含网络条件的对象,这些条件是latency 、throughput (或download_throughput /upload_throughput )和offline (可选)。 |
network_name 可选 | string | 网络节流预设的名称。GPRS 、Regular 2G 、Good 2G 、Regular 3G 、Good 3G 、Regular 4G 、DSL 、WiFi 或No throttling 以禁用。指定预设时,第一个参数中传递的值将不被考虑。 |
示例
// 使用不同的下载(25kb/s)和上传(50kb/s)吞吐量值进行节流,延迟为1000ms
browser.setNetworkConditions({ latency: 1000, download_throughput: 25600, upload_throughput: 51200 });
// 通过将'offline'设置为true强制断开网络连接
browser.setNetworkConditions({ latency: 0, throughput: 0, offline: true });
// 当指定预设名称(例如'DSL')时,不会考虑对象中的值(例如'offline')
browser.setNetworkConditions({ latency: 0, throughput: 0, offline: true }, 'DSL');
// 指定网络节流预设的最佳做法是使用空对象
browser.setNetworkConditions({}, 'Good 3G');
deleteNetworkConditions
禁用可能已设置的任何网络节流。等同于设置No throttling
预设。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.deleteNetworkConditions()
sendCommand
向DevTools调试器发送命令。
有关可用命令及其参数的列表,请参阅Chrome DevTools Protocol Viewer。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.sendCommand(cmd, params)
参数
名称 | 类型 | 详情 |
---|---|---|
cmd | string | 命令的名称(例如Browser.close )。 |
params | object | 命令的参数。如果命令没有参数,请指定一个空对象。 |
sendCommandAndGetResult
向DevTools调试器发送命令并等待结果。
有关可用命令及其参数的列表,请参阅Chrome DevTools Protocol Viewer。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.sendCommandAndGetResult(cmd, params)
参数
名称 | 类型 | 详情 |
---|---|---|
cmd | string | 返回结果的命令的名称(例如Network.getAllCookies )。 |
params | object | 命令的参数。如果命令没有参数,请指定一个空对象。 |
返回
- <*>
result
: 命令的返回值,或者是导致命令失败的错误。
file
将文件上传到运行浏览器的远程机器。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.file(file)
参数
名称 | 类型 | 详情 |
---|---|---|
file | string | Base64编码的zip归档,包含__单个__要上传的文件。如果base64编码的数据不代表zip归档或归档包含多个文件,将抛出未知错误。 |
返回
- <String>
path
: 远程机器上已上传文件的绝对路径。
launchChromeApp
通过指定的ID启动Chrome应用。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.launchChromeApp(id)
参数
名称 | 类型 | 详情 |
---|---|---|
id | string | 要启动的应用的扩展ID,如chrome://extensions中定义。 |
示例
import fs from 'fs'
const browser = remote({
capabilities: {
browserName: 'chrome',
'goog:chromeOptions': {
// 启动浏览器时安装以便启动它
extensions: [
// 条目应为base64编码的打包Chrome应用(.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 | String | 要获取值的元素的id |
返回
- <String|Null>
value
: 元素的当前值。如果指定的元素不是表单控件元素,将返回null
。
elementHover
为元素启用悬停状态,该状态将在下一次交互时重置。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.elementHover(elementId)
参数
名称 | 类型 | 详情 |
---|---|---|
elementId | String | 要悬停的元素的id |
touchPinch
触发捏合缩放效果。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.touchPinch(x, y, scale)
参数
名称 | 类型 | 详情 |
---|---|---|
x | number | 捏合的x位置 |
y | number | 捏合的y位置 |
scale | number | 捏合缩放比例 |
freeze
冻结当前页面。Page Lifecycle API的扩展。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.freeze()
resume
恢复当前页面。Page Lifecycle API的扩展。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.resume()
getCastSinks
返回Chrome媒体路由器可用的Cast接收器(Cast设备)列表。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.getCastSinks()
返回
- <string[]>
sinks
: 可用接收器列表。
selectCastSink
选择Cast接收器(Cast设备)作为媒体路由器意图(连接或播放)的接收者。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.selectCastSink(sinkName)
参数
名称 | 类型 | 详情 |
---|---|---|
sinkName | string | 目标设备的名称。 |
startCastTabMirroring
在指定设备上为当前浏览器标签启动标签镜像。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.startCastTabMirroring(sinkName)
参数
名称 | 类型 | 详情 |
---|---|---|
sinkName | string | 目标设备的名称。 |
getCastIssueMessage
如果Cast会话中存在任何问题,则返回错误消息。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.getCastIssueMessage()
返回
- <String>
message
: 错误消息(如果有)。
stopCasting
如果已连接,停止从媒体路由器到指定设备的投射。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.stopCasting(sinkName)
参数
名称 | 类型 | 详情 |
---|---|---|
sinkName | string | 目标设备的名称。 |
shutdown
关闭ChromeDriver进程,从而终止所有活动会话。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.shutdown()
takeElementScreenshot
Take Element Screenshot命令拍摄元素边界矩形所包围的可见区域的屏幕截图。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.takeElementScreenshot(elementId, scroll)
参数
名称 | 类型 | 详情 |
---|---|---|
elementId | String | 在之前调用Find Element(s)时返回的元素ID |
scroll 可选 | boolean | 将元素滚动到视图中。默认:true |
返回
- <String>
screenshot
: Base64编码的PNG图像数据,包含元素边界矩形的可见区域的屏幕截图,在将其滚动到视图中之后。
getLogTypes
获取可用的日志类型。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.getLogTypes()
返回
- <String[]>
logTypes
: 可用日志类型的列表,例如:browser、driver。
getLogs
获取给定日志类型的日志。每次请求后日志缓冲区会被重置。
非官方且未记录的Chromium命令。关于此命令的更多信息可以在这里找到。
用法
browser.getLogs(type)
参数
名称 | 类型 | 详情 |
---|---|---|
type | string | 日志类型 |
返回
- <Object[]>
logs
: 日志条目列表。