问题描述
我正在尝试使用带专用代理的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 (将#修改为@)