为Selenium创建HTTP基本身份验证Chrome扩展(提供MWE)

我正在尝试使用Google

Chrome浏览器进行selenium测试。我想使用HTTP基本身份验证登录。在Selenium中未实现,因此建议加载扩展。我正在使用来自的代码

https://github.com/RobinDev/Selenium-Chrome-HTTP-Private-

Proxy,以及“如何使用chrome驱动程序使用Java覆盖selenium2中的基本身份验证”的答案?

我已尝试使其适应我的需求。

查看最低工作示例。

git clone git@github.com:alexbiddle/selenium-chrome-http-basic-auth.git

摘录如下

var config = {

mode: "fixed_servers",

rules: {

singleProxy: {

scheme: "https",

host: "subdomain.example.com"

},

bypassList: ["foobar.com"]

}

};

chrome.proxy.settings.set({value: config, scope: "regular"}, function() {});

function callbackFn(details) {

return {

authCredentials: {

username: "example",

password: "abc123"

}

};

}

chrome.webRequest.onAuthRequired.addListener(

callbackFn,

{urls: ["<all_urls>"]},

['blocking']

);

使用Java将其加载

ChromeOptions chromeOptions = new ChromeOptions();

File proxyPath = new ClassPathResource("proxy.zip").getFile();

chromeOptions.addExtensions(proxyPath);

DesiredCapabilities capability = DesiredCapabilities.chrome();

capability.setCapability(CAPABILITY, chromeOptions);

webDriver = new ChromeDriver(capability);

我在https://developer.chrome.com/extensions/proxy#type-

ProxyServer上仔细检查了文档,以防万一缺少某些值,但是在使用URL加载测试时

https://subdomain.example.com

它失败了

ERR_TUNNEL_CONNECTION_FAILED

我在Mac上使用Chrome。

回答:

该错误很可能是由于您的扩展程序定义的代理所致。

如果您需要与系统不同的扩展,则应构建不带代理的扩展,并在功能中定义代理。

要创建扩展名,只需使用username和中定义的凭据将以下文件压缩为password

manifest.json

{

"manifest_version": 2,

"name": "Authentication for ...",

"version": "1.0.0",

"permissions": ["<all_urls>", "webRequest", "webRequestBlocking"],

"background": {

"scripts": ["background.js"]

}

}

background.js

var username = "my-username";

var password = "my-password";

chrome.webRequest.onAuthRequired.addListener(

function handler(details) {

if (username == null)

return {cancel: true};

var authCredentials = {username:username, password: username};

username = password = null;

return {authCredentials: authCredentials};

},

{urls: ["<all_urls>"]},

['blocking']

);

以上是 为Selenium创建HTTP基本身份验证Chrome扩展(提供MWE) 的全部内容, 来源链接: utcz.com/qa/421796.html

回到顶部