2012-02-10 16 views
16

He heredado recientemente un código de Selinium Webdriver, escrito en Python 2.7. Está registrando cantidades copiosas de datos en/tmp en Ubuntu, tanto que se está convirtiendo en un problema. Estoy tratando de apagarlo (o al menos hacia abajo).Desactivando el registro en Selenium (de Python)

He estado corriendo intentando RTFM, pero esta es una nueva versión de Selenium (2.19.0) ¡y los manuales aún no están escritos!

Veo que hay un método llamado set_browser_log_level(logLevel) que suena prometedor, pero para llegar a él, necesito crear una instancia de un objeto selenium.selenium.selenium. De lo contrario, no tengo que instanciar uno de estos, y se necesitan muchos parámetros (¿qué host? ¿Qué puerto?) Que no espero tener que proporcionar.

Claramente, estoy malentendiendo algo.

¿Puede alguien explicar (a) cómo desactivar el registro, o (b) qué servicio es que selenium.selenium.selenium.selenium.selenium (puede que me haya dejado llevar allí, lo siento!) Quiere ¿hablar con?


pregunta relacionada: In Selenium, how do I turn off logging? Se trata de una versión anterior de selenio, y decir que es desde el lenguaje de script, creo.

+0

No mencioné: Una solución de pirateo que utilicé fue crear un archivo vacío del mismo nombre en el directorio temporal y eliminar permisos. El selenio aún funcionaba pero no se registraba. – Oddthinking

Respuesta

21

Esto es lo que me ha ayudado a superar el problema:

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

Nota: este código debe ser puesto antes de la inicialización WebDriver.

Espero que ayude.

+2

ESTA es la respuesta correcta. La respuesta aceptada anterior depende de lo que aparece en los registros como el espacio de nombres, no de cómo funciona el módulo de registro. – uchuugaka

+1

Modifiqué el mío para que sea 'desde selenium.webdriver.remote.remote_connection import LOGGER as serverLogger' para que pueda establecer el nivel por separado de mi código según sea necesario. ¡¡¡Gracias!!! – uchuugaka

+0

@uchuugaka ¡me alegro de que haya ayudado! – alecxe

1

¿Utiliza algún registrador? Tuve un problema muy similar? utilicé un simple logging.basicConfig, pero el selenio hace esto también. Mi solución fue definir mi propio registrador.

Quizás imprima algunos ejemplos de código.

+1

También estoy usando logging.basicConfig, y tengo el mismo problema, Selenium usa lo mismo y ahora sus mensajes de registro encuentran su camino en mis registros (pero solo para una prioridad de registro de depuración o superior). ¿Qué quieres decir con que definiste tu propio registrador? Como en, ¿no usó el módulo de registro de Python y escribió su propia solución de registro? ¿Quizás también pueda mostrar algunas muestras de código? – Dennis

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

no me ayudó. – Serge

+1

Tampoco funcionó para mí –

+0

sin suerte aquí:/ – gh0st

Cuestiones relacionadas