2012-02-01 14 views
13

Mi chiedo se è possibile modificare il profilo dell'agente utente al volo, senza creare una nuova istanza di ForeFoxDriver? Ho il seguente codice, che posso passare nell'agente utente per iphone o ipad, ecc. Funziona bene, ma sto creando una nuova istanza per ogni test che è lento quando apre/chiude il browser. Per esempio. Dopo aver effettuato i miei test con l'agente utente di iPhone, mi piacerebbe passare il profilo all'agent user di Android o all'agent user di iPad, il driver ha la possibilità di cambiare questo senza dover creare una nuova istanza?WebDriver FireFoxProfile UserAgent commutazione con FireFoxDriver

FirefoxProfile profile = new FirefoxProfile(); 
profile.setPreference("general.useragent.override","some user agent, like iphone or iPad"); 
WebDriver driver = new FirefoxDriver(profile); 

// do some tests 
// set profile to new user agent 
// profile.setPreference("general.useragent.override","some android user agent"); 

// can i now set the driver to the new profile here and perform more tests on this same instance of the driver? 
+1

Finora la società non si può fare questo. – p0deje

+0

C'è qualche soluzione ora? – andyf

risposta

2

RemoteWebdriver (classe padre di FirefoxDriver) aggiorna le funzionalità di mappa solo quando la sessione sta cominciando (nel costruttore). Purtroppo non possiamo modificarlo altrove. Penso che sia un'ottima idea.

1

Probabilmente esistono solo le estensioni one-through. Tuttavia, non ho mai provato questo ...

FirefoxProfile ffProfile = new FirefoxProfile(); 
ffProfile.addExtension(new File("path/to/extension")); 
WebDriver driver = new FirefoxDriver(ffProfile); 

L'estensione potrebbe funzionare con è User Agent Switcher: https://addons.mozilla.org/cs/firefox/addon/user-agent-switcher/?src=ss

Ma, come detto prima, non ho mai fatto e non hanno idea di come controllare la addon attraverso Selenium

+0

Lo controllerò, grazie per l'idea. – Green

0

Nella nostra azienda utilizziamo il proxy Browsermob, un proxy open source scritto in java. Si integra perfettamente con il selenio e puoi controllarlo dal tuo codice. Ci serve per molti scopi, uno di questi è la manipolazione dell'intestazione.

Il modo per farlo è descritto qui: https://github.com/webmetrics/browsermob-proxy (sezione Richiesta manipolazione HTTP)

0

questo lavoro per me:

server.addHeader("User-Agent", uaString) 
Problemi correlati