web-dev-qa-db-fra.com

Webdriver et serveur proxy pour firefox

existe-t-il un moyen de définir les paramètres de proxy de firefox? J'ai trouvé ici des informations sur FoxyProxy, mais lorsque Selenium fonctionne, les plugins sont désactivés dans la fenêtre.

35
Max Frai

Regardez la page de documentation .

Modification d'un profil Firefox existant

Vous devez modifier les paramètres de profil "network.proxy.http" & "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);
18
SSH

La valeur de network.proxy.http_port doit être un entier (aucun guillemet ne doit être utilisé) et network.proxy.type doit être défini sur 1 (ProxyType.MANUAL, Paramètres de proxy manuels).

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);
46
Benjan Tom

Je me suis amusé avec ce problème pendant quelques jours et il m’était difficile de trouver une réponse pour HTTPS. Voici donc ma conclusion 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);

Attrapé ici: entrez simplement le domaine et non pas http://proxy.domain.example.com, le nom de la propriété est .ssl et pas .https

J'ai maintenant encore plus de plaisir à le faire accepter mes certificats auto-signés ...

19
Victor

Juste pour ajouter aux solutions données ci-dessus., 

Ajout de la liste des 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, en fonction de nos exigences, la valeur "network.proxy.type" doit être définie comme indiqué ci-dessous.

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.type", 1);
WebDriver driver = new FirefoxDriver(profile);
9
Praveen

L'API WebDriver a été modifiée. L’extrait de code actuel pour la définition 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);
8
Stefan Birkner

Dans le cas où 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);
5
Saikat

Voici un exemple Java utilisant DesiredCapabilities. Je l'ai utilisé pour pomper les tests 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); 
5
Dan Seibert

Pour les urls basées sur 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.

4
Antony

Proxy Firefox: 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);
1
Nick

Il existe une autre solution, que j’ai cherchée, car elle avait des problèmes de code comme celui-ci (c’est le proxy système installé 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, cela force le paramétrage manuel du 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 cela pouvait aider ...

0
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);

C'est pour C #

0
zhouyu