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()

运行测试结果,检测出存在服务级别的错误:

猜你喜欢

转载自blog.csdn.net/qq969887453/article/details/89195886
今日推荐