8、如何获取浏览器控制台日志来判断页面是否加载正常
背景:最近因公司要求,想在发布生产环境后检验发布后的页面是否正常
做个简单的测试,以百度页面为例:
一、打开F12后能够看到一些日志信息,说要页面存在警告或者报错
二、selenium获取日志的方法
# 传入“driver”获取webdriver的日志
driver.get_log("driver")
# 传入“browser”获取浏览器日志
driver.get_log('browser')
三、测试获取日志
测试代码
# coding=utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
driver.implicitly_wait(100)
lists = driver.get_log('browser')
print lists
driver.close()
测试结果:
把打印日志解析查看一下,发现最外层是个数组,内层是个集合
四、代码封装
工具类:
def get_browser_log(driver):
lists = driver.get_log('browser')
list_value = []
if lists.__len__() != 0:
for dicts in lists:
for key, value in dicts.items():
print (key + ": " + str(value))
list_value .append(value)
if 'SEVERE' in list_value:
return "SEVERE"
elif 'WARNING' in list_value:
return "WARNING"
return True
测试类:
# coding=utf-8
from selenium import webdriver
import unittest
import tools.tools
class smoking_test(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.get("https://www.baidu.com/")
self.driver.implicitly_wait(100)
def test_smokeing(self):
driver = self.driver
result = tools.tools.get_browser_log(driver)
if result == 'SEVERE':
print "SEVERE"
elif result == 'WARNING':
print "WARNING"
else:
print u"正常"
def tearDown(self):
driver = self.driver
driver.quit()
if __name__ == '__main__':
unittest.main()
运行测试结果,检测出存在服务级别的错误: