2010-05-22 3 views
32

Existe-t-il des moyens de définir les paramètres proxy de firefox? J'ai trouvé ici des informations sur FoxyProxy mais quand Selenium fonctionne, les plugins ne sont pas activés dans la fenêtre.Webdriver et serveur proxy pour firefox

Répondre

14

Regardez the documentation page.

Peaufiner un profil Firefox existant

Vous devez changer "network.proxy.http" & "network.proxy.http_port" paramètres de profil.

FirefoxProfile profile = new FirefoxProfile(); 
profile.addAdditionalPreference("network.proxy.http", "localhost"); 
profile.addAdditionalPreference("network.proxy.http_port", "3128"); 
WebDriver driver = new FirefoxDriver(profile); 
+6

Cela pourrait être correct en 2010, mais la méthode addAdditionalPreference n'existe plus sur FirefoxProfile setPreference devrait être utilisé pour cela via FirefoxProfile. De plus, pour que firefox utilise réellement le proxy "network.proxy.type", il doit être défini sur 1 comme mentions de réponse Praveen ou sur 2 si c'est un PAC comme Saik0. J'utilise la méthode DesiredCapabilities comme le montre la réponse de Dan Seibert. – EGHM

-4

Préférences -> Avancé -> Réseau -> Connexion (Configurer la façon dont Firefox se connecte à Internet)

+0

Je le sais. Lorsque Selenium exécute une fenêtre firefox pour le travail, l'onglet de connexion avec les proxies est vide. – Ockonal

8

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); 
+3

qu'en est-il de l'authentification par proxy? –

43

Valeur pour 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 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); 
+5

Si quelqu'un me dirait comment puis-je définir "utilisateur: [email protected]: 2874" dans le profil firefox, il serait très apprécié. J'ai essayé 'profile.setPreference (" network.proxy.http "," user: [email protected]: 2874 ")' mais évidemment il ne fonctionne pas. – Shane

+4

qu'en est-il de l'authentification par proxy? –

+2

@Shane: profile.setPreference ("network.proxy.http", "http: // utilisateur: [email protected]"), puis profile.setPreference ("network.proxy.http_port", 2874) devrait fonctionner. – learnJQueryUI

0

Il est une autre solution, je cherchais parce qu'un eu des problèmes avec le code comme celui-ci (il s définir le proxy 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, cela force le paramétrage manuel du proxy dans firefox. Pour ce faire, utilisez l'objet org.openqa.selenium.Proxy pour installer Firefox:

FirefoxProfile profile = new FirefoxProfile(); 
localhostProxy.setProxyType(Proxy.ProxyType.MANUAL); 
localhostProxy.setHttpProxy("localhost:8080"); 
profile.setProxyPreferences(localhostProxy); 
driver = new FirefoxDriver(profile); 

si elle pouvait aider ...

4

Pour PAC à base urls

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 Cela pourrait aider.

+0

Comment s'authentifier auprès de ce proxy? J'essaie comme 'http: // code: Blue% 4019 @ proxypath.pac'. Mais je suis incapable de charger une page. – codeomnitrix

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

Il est pour C#

17

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 nom de domaine et non http://proxy.domain.example.com, le nom de la propriété est .ssl et non .https

Je vais avoir encore plus fu n essayant de le faire accepter mes certificats auto-signés ...

+2

merci, HTTPS fonctionne uniquement avec ces paramètres – AdamSkywalker

5

En 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); 
4

Voici un exemple de Java en utilisant DesiredCapabilities. Je l'ai utilisé pour pomper des tests de sélénium dans jmeter.(Était uniquement 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); 
1

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

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