Как получить журналы консоли IE и / или Edge с помощью Selenium - PullRequest
0 голосов
/ 01 ноября 2018

Я делаю набор тестов селена (автоматизированная среда тестирования пользовательского интерфейса), используя python. Я хочу получить журналы консоли браузера для моих тестов, запускаемых на веб-драйверах IE и Edge. Для этого в Chrome я делаю что-то вроде:

self.browser = webdriver.Chrome
d = DesiredCapabilities.CHROME  # Start with default Chrome capabilites
d['loggingPrefs'] = {'browser': 'ALL'}  # Add flag to track logs
# And then later on I dump logs with the return value from this selenium method:
self.browser.get_log('browser')

Я прочитал тонну старых сообщений о том, что IE не поддерживает получение журналов консоли. Я говорю «старый», потому что самый новый пост, который я смог найти, был в 2015 году. Мне было интересно, изменилось ли это? Кто-нибудь, работающий с современным набором тестов селена, знает, как получить журналы консоли от веб-драйвера IE? Или край? Использование аналогичного self.browser.get_log('browser') в Edge выдает ошибку «Не реализовано»

Нет смысла пытаться получить консольные логи из IE / Edge? Или есть обходной путь, о котором я не знаю?

После обсуждения ниже я попробовал решение, включающее переопределение метода console.log, но я не могу понять, как вернуть значение веб-драйверу. Вот что я сделал:

    driver.execute_script('x = {}')  # Make an empty JS dict
    # Override the console.log method. This just appends the msg to x as an incrementing key
    driver.execute_script("console.log = function(msg){var key=Object.keys(x).length + 1; x[key] = msg;}")
    driver.execute_script('console.log("whatever")')  # Log something
    print(driver.execute_script('x'))  # I thought this would return the value of "x" but it returns None
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...