2012-02-10 12 views
16

Ho recentemente ereditato del codice Selenium Webdriver, scritto in Python 2.7. Sta registrando quantità copiose di dati in/tmp su Ubuntu, così tanto che sta diventando un problema. Sto cercando di spegnerlo (o almeno giù).Disattivazione del logging in selenio (da Python)

Ho provato a provare RTFM, ma questa è una nuova versione di Selenium (2.19.0) ei manuali non sono ancora stati scritti!

Vedo che c'è un metodo chiamato set_browser_log_level(logLevel) che sembra promettente, ma per arrivarci, ho bisogno di istanziare un oggetto selenium.selenium.selenium. In caso contrario, non devo istanziare uno di questi, e ci vogliono molti parametri (quale host? Quale porta?) Che non mi aspetto di dover fornire.

Chiaramente, sto fraintendendo qualcosa.

Qualcuno può spiegare (a) come disattivare la registrazione o (b) quale servizio è quel selenium.selenium.selenium.selenium.selenium (forse mi sono portato via, mi dispiace!) Vuole parlare a?


questione connessa: In Selenium, how do I turn off logging? Questa è una versione più vecchia di selenio, e chiamando dal linguaggio di scripting, credo.

+0

Non ho menzionato: una soluzione di hacking che ho usato è stata quella di creare un file vuoto con lo stesso nome nella directory temp e rimuovere le autorizzazioni. Il selenio funzionava ancora ma non si registrava. – Oddthinking

risposta

21

Ecco cosa mi ha aiutato a superare il problema:

import logging 
from selenium.webdriver.remote.remote_connection import LOGGER 
LOGGER.setLevel(logging.WARNING) 

Nota: questo codice dovrebbe essere messo prima dell'inizializzazione WebDriver.

Spero che questo aiuti.

+2

Questa è la risposta giusta. Quanto sopra, risposta accettata si basa su ciò che appare nei registri come lo spazio dei nomi, non su come funziona il modulo di registrazione. – uchuugaka

+1

Ho modificato il mio per essere 'da selenium.webdriver.remote.remote_connection import LOGGER come serverLogger' in modo da poter impostare il livello separatamente dal mio codice, se necessario. Grazie!!! – uchuugaka

+0

@uchuugaka felice che abbia aiutato! – alecxe

1

Usi un logger? Ho avuto un problema molto simile? ho usato un semplice logging.basicConfig, ma anche Selenium lo fa. La mia soluzione era di definire il mio logger.

Forse si stampano alcuni esempi di codice.

+1

Sto usando anche logging.basicConfig, e ho lo stesso problema, Selenium usa lo stesso e ora i suoi messaggi di registro trovano la loro strada nei miei log (ma solo per una priorità di logging di debug o superiore). Cosa intendi per definizione del tuo logger? Come in, non hai usato il modulo di registrazione di Python e hai scritto la tua soluzione di registrazione? Forse puoi anche mostrare alcuni esempi di codice? – Dennis

10
import logging 
selenium_logger = logging.getLogger('selenium.webdriver.remote.remote_connection') 
# Only display possible problems 
selenium_logger.setLevel(logging.WARNING) 
+2

non ha aiutato per me. – Serge

+1

Non ha funzionato neanche per me –

+0

o non c'è niente da fare qui:/ – gh0st

Problemi correlati