跳至主要内容

Selenium Grid

您可以将 WebdriverIO 与您现有的 Selenium Grid 实例一起使用。要将您的测试连接到 Selenium Grid,您只需要更新测试运行器配置中的选项。

这是一个来自示例 wdio.conf.ts 的代码片段。

export const config: Options.Testrunner = {
// ...
protocol: 'https',
hostname: 'yourseleniumgridhost.yourdomain.com',
port: 443,
path: '/wd/hub',
// ...

}

您需要根据您的 Selenium Grid 设置提供协议、主机名、端口和路径的相应值。如果您在与测试脚本相同的机器上运行 Selenium Grid,以下是一些典型的选项

export const config: Options.Testrunner = {
// ...
protocol: 'http',
hostname: 'localhost',
port: 4444,
path: '/wd/hub',
// ...

}

使用受保护的 Selenium Grid 进行基本身份验证

强烈建议您保护您的 Selenium Grid。如果您有一个需要身份验证的受保护的 Selenium Grid,您可以通过选项传递身份验证标头。请参阅文档中的标头部分以获取更多信息。

使用动态 Selenium Grid 的超时配置

当使用动态 Selenium Grid(其中浏览器 Pod 按需启动)时,会话创建可能会面临冷启动。在这种情况下,建议增加会话创建超时时间。选项中的默认值为 120 秒,但如果您的网格需要更多时间来创建新会话,您可以将其增加。

connectionRetryTimeout: 180000,

高级配置

有关高级配置,请参阅测试运行器配置文件

使用 Selenium Grid 进行文件操作

在使用远程 Selenium Grid 运行测试用例时,浏览器在远程机器上运行,您需要特别注意涉及文件上传和下载的测试用例。

文件下载

对于基于 Chromium 的浏览器,您可以参考下载文件文档。如果您的测试脚本需要读取下载文件的內容,则需要将其从远程 Selenium 节点下载到测试运行器机器。以下是来自 Chrome 浏览器的示例 wdio.conf.ts 配置的代码片段

export const config: WebdriverIO.Config = {
// ...
protocol: 'https',
hostname: 'yourseleniumgridhost.yourdomain.com',
port: 443,
path: '/wd/hub',
// ...
capabilities: [{
browserName: 'chrome',
'se:downloadsEnabled': true
}],
//...
}

使用远程 Selenium Grid 上传文件

要将文件上传到远程浏览器中的 Web 应用程序,您首先需要将文件上传到远程网格。您可以参考uploadFile文档以获取详细信息。

其他文件/网格操作

您可以使用 Selenium Grid 执行更多操作。Selenium Standalone 的说明也适用于 Selenium Grid。请参阅Selenium Standalone文档以获取可用选项。

Selenium Grid 官方文档

有关 Selenium Grid 的更多信息,您可以参考官方 Selenium Grid文档

如果您希望在 Docker、Docker compose 或 Kubernetes 中运行 Selenium Grid,请参阅 Selenium-Docker 的GitHub 存储库

欢迎!我如何帮助您?

WebdriverIO AI Copilot