我正在使用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