跳至主要内容

代理设置

您可以通过代理隧道两种不同类型的请求

  • 测试脚本与浏览器驱动程序(或 WebDriver 端点)之间的连接
  • 浏览器与互联网之间的连接

驱动程序和测试之间的代理

如果您的公司对所有传出请求都使用公司代理(例如,在 http://my.corp.proxy.com:9090 上),请按照以下步骤安装和配置undici

安装 undici

npm install undici --save-dev

将 undici setGlobalDispatcher 添加到您的配置文件中

将以下 require 语句添加到配置文件的顶部。

wdio.conf.js
import { setGlobalDispatcher, ProxyAgent } from 'undici';

const dispatcher = new ProxyAgent({ uri: new URL(process.env.https_proxy).toString() });
setGlobalDispatcher(dispatcher);

export const config = {
// ...
}

有关配置代理的其他信息,请参见此处

如果您使用Sauce Connect Proxy,请通过以下方式启动它

sc -u $SAUCE_USERNAME -k $SAUCE_ACCESS_KEY --no-autodetect -p http://my.corp.proxy.com:9090

浏览器和互联网之间的代理

为了隧道浏览器和互联网之间的连接,您可以设置一个代理,这对于(例如)使用BrowserMob Proxy之类的工具捕获网络信息和其他数据很有用。

proxy 参数可以通过以下方式应用于标准功能

wdio.conf.js
export const config = {
// ...
capabilities: [{
browserName: 'chrome',
// ...
proxy: {
proxyType: "manual",
httpProxy: "corporate.proxy:8080",
socksUsername: "codeceptjs",
socksPassword: "secret",
noProxy: "127.0.0.1,localhost"
},
// ...
}],
// ...
}

有关更多信息,请参阅WebDriver 规范

欢迎!我如何帮助您?

WebdriverIO AI Copilot