Вы можете написать собственное расширение Firefox для прокси и запускать его из селена. Вам нужно записать 2 файла и упаковать.
background.js
var proxy_host = "YOUR_PROXY_HOST";
var proxy_port = YOUR_PROXY_PORT;
var config = {
mode: "fixed_servers",
rules: {
singleProxy: {
scheme: "http",
host: proxy_host,
port: proxy_port
},
bypassList: []
}
};
function proxyRequest(request_data) {
return {
type: "http",
host: proxy_host,
port: proxy_port
};
}
browser.proxy.settings.set({value: config, scope: "regular"}, function() {;});
function callbackFn(details) {
return {
authCredentials: {
username: "YOUR_USERNAME",
password: "YOUR_PASSWORD"
}
};
}
browser.webRequest.onAuthRequired.addListener(
callbackFn,
{urls: ["<all_urls>"]},
['blocking']
);
browser.proxy.onRequest.addListener(proxyRequest, {urls: ["<all_urls>"]});
manifest.json
{
"name": "My Firefox Proxy",
"version": "1.0.0b",
"manifest_version": 2,
"permissions": [
"browsingData",
"proxy",
"storage",
"tabs",
"webRequest",
"webRequestBlocking",
"downloads",
"notifications",
"<all_urls>"
],
"background": {
"scripts": ["background.js"]
},
"browser_specific_settings": {
"gecko": {
"id": "[email protected]"
}
}
}
Затем вам нужно упаковать эти файлы в zip-архив в режиме DEFLATED с .xpi в конце, например, my_proxy_extension.xpi.
У вас есть два варианта:
Подпишите свое расширение Здесь вы можете прочитать больше о проверке расширения и его структуры
ИЛИ
Выполнить без знака. Для этого шага:
- Open firefox flags at
about:config
and set options xpinstall.signatures.required to false
ИЛИ
Обновите профиль Firefox в:
Windows: C: \ Program Files \ Mozilla Firefox \ defaults \ pref \ channel-prefs.js.
Linux: /etc/firefox/syspref.js
Добавьте следующую строку в конец файла:
pref ("xpinstall.signatures.required", false);
После этого запустите селен и установите это расширение:
FirefoxProfile profile = new FirefoxProfile();
profile.addExtension(new File("path/to/my_proxy_extension.xpi"));
driver = new FirefoxDriver(profile);
person
Feuermann
schedule
15.05.2020
ProfilesIni
получения ошибкиThe type or namespace name 'ProfilesIni' could not be found
- person Nick Kahn   schedule 23.11.2013