配置
根据设置类型(例如使用原始协议绑定、作为独立包的WebdriverIO或WDIO测试运行器),有不同的选项可用于控制环境。
WebDriver 选项
使用webdriver协议包时,定义了以下选项:
protocol
与驱动程序服务器通信时使用的协议。
类型:String
默认值:http
hostname
驱动程序服务器的主机。
类型:String
默认值:0.0.0.0
port
驱动程序服务器的端口。
类型:Number
默认值:undefined
path
驱动程序服务器端点的路径。
类型:String
默认值:/
queryParams
传播到驱动程序服务器的查询参数。
类型:Object
默认值:undefined
user
您的云服务用户名(仅适用于Sauce Labs、Browserstack、TestingBot或TestMu AI账户)。如果设置,WebdriverIO将自动为您设置连接选项。如果不使用云提供商,可以用于验证任何其他WebDriver后端。
类型:String
默认值:undefined
key
您的云服务访问密钥或密钥(仅适用于Sauce Labs、Browserstack、TestingBot或TestMu AI账户)。如果设置,WebdriverIO将自动为您设置连接选项。如果不使用云提供商,可以用于验证任何其他WebDriver后端。
类型:String
默认值:undefined
capabilities
定义您要在WebDriver会话中运行的功能。查看WebDriver协议了解更多详情。如果您运行的是不支持WebDriver协议的旧驱动程序,则需要使用JSONWireProtocol功能才能成功运行会话。
除了基于WebDriver的功能外,您还可以应用浏览器和供应商特定的选项,这些选项允许对远程浏览器或设备进行更深入的配置。这些在相应的供应商文档中有记载,例如:
goog:chromeOptions:用于Google Chromemoz:firefoxOptions:用于Mozilla Firefoxms:edgeOptions:用于Microsoft Edgesauce:options:用于Sauce Labsbstack:options:用于BrowserStackselenoid:options:用于Selenoid
此外,Sauce Labs的自动测试配置器是一个有用的工具,可以通过点击组合您所需的功能来帮助您创建此对象。
类型:Object
默认值:null
示例:
{
browserName: 'chrome', // 选项: `chrome`, `edge`, `firefox`, `safari`
browserVersion: '27.0', // 浏览器版本
platformName: 'Windows 10' // 操作系统平台
}
如果您在移动设备上运行网页或原生测试,capabilities与WebDriver协议不同。有关更多详细信息,请参阅Appium文档。
logLevel
日志记录的详细级别。
类型:String
默认值:info
选项:trace | debug | info | warn | error | silent
outputDir
存储所有测试运行器日志文件(包括报告器日志和wdio日志)的目录。如果未设置,所有日志都将流式传输到stdout。由于大多数报告器都是为了记录到stdout而设计的,因此建议仅对特定报告器使用此选项,在这些情况下,将报告推送到文件中更有意义(例如junit报告器)。
在独立模式下运行时,WebdriverIO生成的唯一日志将是wdio日志。
类型:String
默认值:null
connectionRetryTimeout
对驱动程序或网格的任何WebDriver请求的超时时间。
类型:Number
默认值:120000
connectionRetryCount
对Selenium服务器的请求重试的最大次数。
类型:Number
默认值:3
agent
允许您使用自定义的http/https/http2 agent来发出请求。
类型:Object
默认值:
{
http: new http.Agent({ keepAlive: true }),
https: new https.Agent({ keepAlive: true })
}
headers
指定要传递到每个WebDriver请求的自定义headers。如果您的Selenium Grid需要基本认证,我们建议通过此选项传入Authorization标头来验证您的WebDriver请求,例如:
import { Buffer } from 'buffer';
// 从环境变量读取用户名和密码
const username = process.env.SELENIUM_GRID_USERNAME;
const password = process.env.SELENIUM_GRID_PASSWORD;
// 用冒号分隔符组合用户名和密码
const credentials = `${username}:${password}`;
// 使用Base64编码凭据
const encodedCredentials = Buffer.from(credentials).toString('base64');
export const config: WebdriverIO.Config = {
// ...
headers: {
Authorization: `Basic ${encodedCredentials}`
}
// ...
}
类型:Object
默认值:{}
transformRequest
在发出WebDriver请求之前拦截HTTP请求选项的函数
类型:(RequestOptions) => RequestOptions
默认值:无
transformResponse
在WebDriver响应到达后拦截HTTP响应对象的函数。该函数将原始响应对象作为第一个参数,相应的RequestOptions作为第二个参数传递。
类型:(Response, RequestOptions) => Response
默认值:无
strictSSL
是否不要求SSL证书有效。
可以通过环境变量STRICT_SSL或strict_ssl设置。
类型:Boolean
默认值:true
enableDirectConnect
是否启用Appium直连功能。 如果响应在启用标志的情况下没有适当的键,则不执行任何操作。
类型:Boolean
默认值:true
cacheDir
缓存目录的根路径。该目录用于存储尝试启动会话时下载的所有驱动程序。
类型:String
默认值:process.env.WEBDRIVER_CACHE_DIR || os.tmpdir()
maskingPatterns
为了更安全的日志记录,用maskingPatterns设置的正则表达式可以从日志中混淆敏感信息。
- 字符串格式是带有或不带标志的正 则表达式(例如
/.../i),多个正则表达式用逗号分隔。 - 有关掩码模式的更多详细信息,请参阅WDIO Logger README中的掩码模式部分。
类型:String
默认值:undefined
示例:
{
maskingPatterns: '/--key=([^ ]*)/i,/RESULT (.*)/'
}
WebdriverIO
以下选项(包括上述选项)可以与独立的WebdriverIO一起使用: