Отключение входа в систему Selenium (из Python)

Недавно я унаследовал некоторый код Selenium Webdriver, написанный на Python 2.7. Он записывает большое количество данных в /tmp в Ubuntu - настолько, что это становится проблемой. Я пытаюсь выключить его (или хотя бы выключить).

Я бегал, пытаясь RTFM, но это новая версия Selenium (2.19.0), а руководства еще не написаны!

Я вижу, что есть метод, называемый set_browser_log_level(logLevel)что звучит многообещающе, но чтобы добраться до него, мне нужно создать экземплярselenium.selenium.seleniumобъект. В противном случае мне не нужно создавать экземпляр одного из них, и он требует много параметров (какой хост? Какой порт?), Которые я не собираюсь предоставлять.

Понятно, я что-то неправильно понимаю.

Может ли кто-нибудь объяснить, пожалуйста (а) как отключить ведение журнала или (б) с какой службой хочет поговорить selenium.selenium.selenium.selenium.selenium (возможно, меня увлекли там, извините!)?


Связанный вопрос: в Selenium, как отключить ведение журнала? Это более старая версия Selenium, и я полагаю, что она называется на языке сценариев.

5 ответов

Решение

Вот что помогло мне преодолеть проблему:

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

Примечание: этот код следует поместить перед инициализацией веб-драйвера.

Надеюсь, это поможет.

Ответ от alecxe работал на меня. Однако в журнале остались сообщения отладки, исходящие из urllib3. Это импортировано селеном, и не затронуто решением выше. Вот что я использовал, для чего это стоит:

# Set the threshold for selenium to WARNING
from selenium.webdriver.remote.remote_connection import LOGGER as seleniumLogger
seleniumLogger.setLevel(logging.WARNING)
# Set the threshold for urllib3 to WARNING
from urllib3.connectionpool import log as urllibLogger
urllibLogger.setLevel(logging.WARNING)

Если кто-то знает более питонский способ добиться того же - я буду рад это услышать.

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

Вы используете какой-нибудь регистратор? У меня была очень похожая проблема? Я использовал простой logging.basicConfig, но Selenium делает это тоже. Моим решением было определить мой собственный регистратор.

Может быть, вы напечатаете несколько примеров кода.

Вы можете настроить его, это отключит все журналирование, но печать позволит вам увидеть, на какой модуль вы влияете:

      import logging
for logger in [logging.getLogger(name) for name in logging.root.manager.loggerDict]:
    # print(logger)
    logger.setLevel(logging.WARNING)
    #logger.setlevel(logging.DEBUG)
Другие вопросы по тегам