2013-08-29 5 views
5

Sono in javascript + mocha + nodo terra.Come modificare l'agente utente di selenio in selenium-webdriver nodejs land?

Ho provato a fissare userAgent e 'user-agent' come tasti sulle capacità:

var webdriver = require('selenium-webdriver'); 
var ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X)'; 

var driver = new webdriver.Builder(). 
    ... 
    withCapabilities({ 'browserName': 'firefox', 
     userAgent: ua, 
     'user-agent': ua, 
    }). 
    build(); 

C'è this answer che dice di usare un profilo di Firefox, ma non è esposto. Non v'è alcun driver.FirefoxProfile né uno esposto a livello globale né webdriver.FirefoxProfiledriver.profiles ecc

Ho provato Googling e guardando the source e the documentation ma non c'è nulla su questo.

risposta

1

È non è possibile farlo con Firefox, ma è possibile farlo con Chrome. Non documentato:

var chrome = require('selenium-webdriver/chrome'); 

var opts = new chrome.Options(); 
opts.addArguments(['user-agent="YOUR_USER_AGENT"']); 

var driver = new webdriver.Builder(). 
    withCapabilities(opts.toCapabilities()). 
    build(); 
5

I user agent con successo mutato di phantom usando WD con questo codice:

var capabilities = { 
    'browserName': 'phantomjs', 
    'phantomjs.page.settings.userAgent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.11 Safari/537.36' 
}; 
return browser 
    .init(capabilities) 
... 

E this collegamento mostra come cambiare user agent di Firefox, anche se il codice fornito è per C#/Ruby.

+0

mi sono imbattuto in un problema in cui un server ASP.net sarebbe tornato rotto JavaScript con il PhantomJS di default user-agent, quindi devo falsificare così ottengo una pagina corretta. Vedi anche https://stackoverflow.com/questions/20164753/sys-webforms-pagerequestmanager-is-undefined-error-in-ie11-working-fine-in-ie10 – Luksurious

3

Hai solo bisogno di installare il pacchetto firefox-profile. Ecco uno snippet:

var webdriver = require('selenium-webdriver'); 
var FirefoxProfile = require('firefox-profile'); 

var myProfile = new FirefoxProfile();   
var capabilities = webdriver.Capabilities.firefox(); 

// here you set the user-agent preference 
myProfile.setPreference('general.useragent.override', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36'); 

// attach your newly created profile 
myProfile.encoded(function(encodedProfile) { 
    capabilities.set('firefox_profile', encodedProfile); 

    // start the browser 
    var wd = new webdriver.Builder(). 
     withCapabilities(capabilities). 
     build(); 

    wd.get('http://testingsite.com/'); 
}); 

Easy peasy!

0

per Chrome si può fare in questo modo:

var driver = new webdriver.Builder() 
.usingServer('http://localhost:4444/wd/hub') 
.withCapabilities({browserName: 'chrome', chromeOptions: {args:['user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"'] } }) 
.build(); 
+1

Si prega di modificare con ulteriori informazioni. Le risposte solo per codice e "prova questo" sono scoraggiate, perché non contengono contenuti ricercabili e non spiegano perché qualcuno dovrebbe "provare questo". Facciamo uno sforzo qui per essere una risorsa per la conoscenza. – abarisone

Problemi correlati