WebDriver et le serveur proxy pour Firefox
-
04-10-2019 - |
Question
sont-il des façons de définir les paramètres de proxy de Firefox? Je trouve ici des informations sur FoxyProxy mais quand fonctionne Sélénium, les plugins sont inactivés dans la fenêtre.
La solution
Regardez la page de documentation .
Peaufiner un profil Firefox existant
Vous devez changer "network.proxy.http" et les paramètres de profil "de network.proxy.http_port".
FirefoxProfile profile = new FirefoxProfile();
profile.addAdditionalPreference("network.proxy.http", "localhost");
profile.addAdditionalPreference("network.proxy.http_port", "3128");
WebDriver driver = new FirefoxDriver(profile);
Autres conseils
Valeur network.proxy.http_port
doit être un entier (sans les guillemets doivent être utilisés) et network.proxy.type
doit être défini comme 1 (ProxyType.MANUAL
, paramètres de proxy Manuel)
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.type", 1);
profile.setPreference("network.proxy.http", "localhost");
profile.setPreference("network.proxy.http_port", 3128);
WebDriver driver = new FirefoxDriver(profile);
Je viens d'avoir du plaisir avec cette question pendant quelques jours et il était difficile pour moi de trouver une réponse pour HTTPS, donc voici mon, pour Java:
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.type", 1);
profile.setPreference("network.proxy.http", "proxy.domain.example.com");
profile.setPreference("network.proxy.http_port", 8080);
profile.setPreference("network.proxy.ssl", "proxy.domain.example.com");
profile.setPreference("network.proxy.ssl_port", 8080);
driver = new FirefoxDriver(profile);
Gotchas ici: il suffit d'entrer le domaine et non http://proxy.domain.example.com
, le nom de la propriété est .ssl
et non .https
Je vais avoir encore plus de plaisir à essayer de l'obtenir d'accepter mes certificats auto-signés ...
Juste pour ajouter aux solutions données ci-dessus.
Ajout de la liste de possibilités (valeurs entières) pour le "network.proxy.type".
0 - Direct connection (or) no proxy.
1 - Manual proxy configuration
2 - Proxy auto-configuration (PAC).
4 - Auto-detect proxy settings.
5 - Use system proxy settings.
Ainsi, la base de notre exigence, la valeur « network.proxy.type » doit être réglé comme indiqué ci-dessous.
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.type", 1);
WebDriver driver = new FirefoxDriver(profile);
L'API WebDriver a été modifiée. L'extrait en cours pour le réglage du proxy est
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.http", "localhost");
profile.setPreference("network.proxy.http_port", "3128");
WebDriver driver = new FirefoxDriver(profile);
Dans le cas si vous avez une URL autoconfig -
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.setPreference("network.proxy.type", 2);
firefoxProfile.setPreference("network.proxy.autoconfig_url", "http://www.etc.com/wpad.dat");
firefoxProfile.setPreference("network.proxy.no_proxies_on", "localhost");
WebDriver driver = new FirefoxDriver(firefoxProfile);
Voici un exemple de Java en utilisant DesiredCapabilities
. Je l'ai utilisé pour les essais de pompage de sélénium dans jmeter. (Était seulement intéressé par les requêtes HTTP)
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
String myProxy = "localhost:7777"; //example: proxy host=localhost port=7777
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY,
new Proxy().setHttpProxy(myProxy));
WebDriver webDriver = new FirefoxDriver(capabilities);
Pour urls à base de PAC
Proxy proxy = new Proxy();
proxy.setProxyType(Proxy.ProxyType.PAC);
proxy.setProxyAutoconfigUrl("http://some-server/staging.pac");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);
return new FirefoxDriver(capabilities);
J'espère que cela pourrait aider.
Firefox Proxy: JAVA
String PROXY = "localhost:8080";
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();
proxy.setHttpProxy(PROXY)setFtpProxy(PROXY).setSslProxy(PROXY);
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver = new FirefoxDriver(cap);
Il y a une autre solution, je cherchais parce que a eu des problèmes avec le code comme celui-ci (il s définir le proxy du système dans Firefox):
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.http", "localhost");
profile.setPreference("network.proxy.http_port", "8080");
driver = new FirefoxDriver(profile);
Je préfère cette solution, il force le réglage manuel proxy dans Firefox. Pour ce faire, utilisez l'objet org.openqa.selenium.Proxy pour configurer Firefox:
FirefoxProfile profile = new FirefoxProfile();
localhostProxy.setProxyType(Proxy.ProxyType.MANUAL);
localhostProxy.setHttpProxy("localhost:8080");
profile.setProxyPreferences(localhostProxy);
driver = new FirefoxDriver(profile);
si elle pourrait aider ...
FirefoxProfile profile = new FirefoxProfile();
String PROXY = "xx.xx.xx.xx:xx";
OpenQA.Selenium.Proxy proxy = new OpenQA.Selenium.Proxy();
proxy.HttpProxy=PROXY;
proxy.FtpProxy=PROXY;
proxy.SslProxy=PROXY;
profile.SetProxyPreferences(proxy);
FirefoxDriver driver = new FirefoxDriver(profile);
Il est C #
Préférences -> Avancé -> Réseau -> Connexion (Configurer comment Firefox se connecte à Internet)