如何使用Selenium获取IE和/或Edge控制台日志

时间:2018-11-01 15:23:32

标签: python selenium selenium-webdriver logging

我正在使用python创建一个硒测试套件(自动UI测试框架)。我想获取在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 Webdriver获取控制台日志?还是边缘?在Edge上使用类似的self.browser.get_log('browser')会给我一个错误“未实现”

尝试从IE / Edge获取控制台日志没有任何意义吗?还是有我不知道的解决方法?

在下面的讨论之后,我尝试了一个涉及覆盖console.log方法的解决方案,但是我似乎无法弄清楚如何将该值返回给webdriver。这就是我所做的:

    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

0 个答案:

没有答案