2014-09-15 19 views
11

Sia Chrome e PhantomJS driver di selenio possono accedere tutto quello che succede sul lato browser. Specificando il percorso del registro di servizio durante l'inizializzazione del driver, è possibile controllare dove verranno scritti i registri. Per esempio. per Chrome (in Python):log WebDriver per Firefox

from selenium import webdriver 

driver = webdriver.Chrome(service_log_path="/tmp/log") 
driver.get("http://www.google.com") 
driver.close() 

Dopo l'esecuzione del codice, /tmp/log file potrebbe contenere i registri di servizio che è utile per il debug:

[0.985][INFO]: Launching chrome: ... 
[2.620][INFO]: RESPONSE InitSession { 
    "acceptSslCerts": true, 
    "applicationCacheEnabled": false, 
    "browserConnectionEnabled": false, 
    "browserName": "chrome", 
    "chrome": { 
     "userDataDir": "/var/folders/yy/ppdg927x4zv8b0rbzg1f_jzh0000gn/T/.org.chromium.Chromium.ibsof9" 
    }, 
    "cssSelectorsEnabled": true, 
    "databaseEnabled": false, 
    "handlesAlerts": true, 
    "javascriptEnabled": true, 
    "locationContextEnabled": true, 
    "nativeEvents": true, 
    "platform": "Mac OS X", 
    "rotatable": false, 
    "takesHeapSnapshot": true, 
    "takesScreenshot": true, 
    "version": "37.0.2062.120", 
    "webStorageEnabled": true 
} 
[2.677][INFO]: Waiting for pending navigations... 
[2.696][INFO]: Done waiting for pending navigations 
[3.290][INFO]: Waiting for pending navigations... 
[4.338][INFO]: Done waiting for pending navigations 
[4.338][INFO]: RESPONSE Navigate 
[4.339][INFO]: COMMAND CloseWindow { 

} 
[4.451][INFO]: RESPONSE CloseWindow 

C'è un modo per ottenere le stesse informazioni ma utilizzando Firefox driver Web?

Da quello che vedo nel codice sorgente, sia Chrome e PhantomJS al fuoco fino new services via subprocess e passare l'argomento --log-path ad esso. E questi servizi sono responsabili della registrazione. Per quanto riguarda Firefox driver, l'implementazione è molto diversa e si basa sulla classe FirefoxBinary.

esempio fornito e collegamenti sono Python-correlati, ma la domanda è più o meno generica e indipendente dal linguaggio. Gradirei qualsiasi suggerimento.

risposta

9

È necessario impostare le opzioni di registrazione in profilo di Firefox come in suggerimenti per sviluppatori LINK - https://code.google.com/p/selenium/wiki/DeveloperTips - per console registro che si dovrebbe usare:

FirefoxProfile p = new FirefoxProfile(); 
p.setPreference("webdriver.log.file", "/tmp/firefox_console"); 
WebDriver driver = new FirefoxDriver(p); 

Per registro del browser, è necessario utilizzare

webdriver.firefox.logfile 

(https://code.google.com/p/selenium/wiki/FirefoxDriver)

Spero che questo aiuti.

+0

Il file di log non è dettagliato come i servizi di uno Chrome e PhantomJS forniscono, ma questo è bene sapere e avrebbe aiutato con il debug. Grazie mille! – alecxe

+0

Ragazzi, sapete per caso quello per i "registri del browser" per Chrome? ad esempio webdriver.firefox.logfile ma per Chrome. –

Problemi correlati