Я делаю набор тестов селена (автоматизированная среда тестирования пользовательского интерфейса), используя 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