如何解决Firefox通过WebRequest验证代理
我正在尝试使用带专用代理的Firefox运行Selenium测试。
我在使用代理身份验证时遇到麻烦。
在没有headless
模式的情况下,我可以在Java中使用Robot
对代理进行身份验证。
现在,我想在Firefox中以headless
模式运行。
我用https://stackoverflow.com/questions/55522874/how-to-handle-proxy-authentication-in-firefox-with-self-created-extension-using
来引用,但这对我不起作用。
我的代码:
background.js :
var config = {
mode: "fixed_servers",rules: {
singleProxy: {
scheme: "http",host: "xx.xx.xx.xx",port: parseInt("xxxxx")
},bypassList: []
}
};
firefox.proxy.settings.set({value: config,scope: "regular"},function() {});
function callbackFn(details) {
return {
authCredentials: {
username: "xxxxx",password: "xxxxx"
}
};
}
firefox.webRequest.onAuthrequired.addListener(
callbackFn,{urls: ["<all_urls>"]},['blocking']
);
manifest.json :
{
"version": "1.0.0","manifest_version": 2,"name": "Firefox Proxy | (Proxy Connector)","permissions": [
"proxy","tabs","unlimitedStorage","storage","<all_urls>","webRequest","webRequestBlocking"
],"background": {
"scripts": ["background.js"]
}
}
我用上面的2个文件创建了文件夹扩展名。之后,我将其压缩并重命名为extension.xpi
加载到Java:
System.setProperty("webdriver.gecko.driver",path);
File extension = new File("./extension.xpi");
FirefoxProfile profile = new FirefoxProfile();
profile.addExtension(extension);
profile.setPreference("extensions.firebug.onByDefault",true);
profile.setPreference("xpinstall.signatures.required",false);
FirefoxOptions options = new FirefoxOptions();
options.setBinary(new FirefoxBinary());
options.setProfile(profile);
WebDriver driver = new FirefoxDriver(options);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。