Я пытаюсь запустить тест Selenium с Firefox с частным прокси. У меня проблема с аутентификацией прокси. Без режима headless
я могу аутентифицировать прокси с помощью Robot
в Java. Теперь я хочу запустить в 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);
Кажется, произошла ошибка с файлом расширения.