Python编写的PO模式webUI自动化: 页面类调用创建浏览器对象类后, 提示元素无定位方式的属性, 有时间的童鞋看一下原因

创建浏览器对象类

from selenium import webdriver
from configs import url

class Driver:
    _driver = None
    @classmethod
    def get_driver(cls,broswerName='Firefox'):
        '''
        如果driver为None, 创建浏览器对象
        :param broswerName: 要创建的浏览器对象名字
        :return: 返回一个浏览器对象
        '''
        if cls._driver is None:
            if broswerName == 'Chrome':
                cls._driver = webdriver.Chrome(url.driverDir['Chrome'])
            elif broswerName == 'Firefox':
                cls._driver = webdriver.Firefox()

            cls._driver.get(url.jiapeng_url) # 获取测试系统地址

            if cls._driver == 'Chrome':
                '''创建的浏览器对象为Chrome时, 页面会有警告弹框'''
                privacy_link = cls._driver.find_element_by_css_selector("a[id='proceed-link']") #定位页面中要测试的链接, 赋值给变量
                if privacy_link is None:
                    pass
                elif privacy_link != None:
                    cls._driver.find_element_by_css_selector("button[id='details-button']").click() # 点击警告页面中的高级按钮
                    cls._driver.find_element_by_css_selector("a[id='proceed-link']").click() # 点击链接

            cls._driver.maximize_window() # 窗口最大化

            return cls._driver


页面类

from PyLib.basePage import BasePage
from selenium.webdriver.common.by import By
class HomePage(BasePage):
    '''网站首页, 页面元素类'''
    def caseList_first(self):
        '''精品案例展示列表第一张图片'''
        caseList_first_ele = self.driver.find_element_by_css_selector("div[class='main1']>:nth-child(2)>:nth-child(2)>img")
        return  caseList_first_ele
    def caseList_second(self):
        '''精品案例展示列表第二张图片'''
        caseList_second_ele = self.driver.find_element_by_css_selector("div[class='main1']>:nth-child(2)>:nth-child(4)>img")
        return caseList_second_ele
    def get_imgName_first(self):
        '''精品案例列表中第一个案例的名称'''
        get_imgName_first_ele = self.driver.find_element_by_css_selector("div[class='main1']>:nth-child(2)>:nth-child(3) a").text
        return get_imgName_first_ele


class HomePage_action(HomePage):
    '''网站首页, 页面动作类'''
    def caseList_fist_action(self):
        '''保存图片'''
        BasePage().img_save(HomePage().caseList_first(),HomePage().get_imgName_first()) # img_save为公共类中的一个方法


if __name__ == '__main__':
    HomePage_action().caseList_fist_action()

报错如下
Traceback (most recent call last):
File "D:/Projects/jiapeng/PyLib/homePage.py", line 34, in
HomePage_action().caseList_fist_action()
File "D:/Projects/jiapeng/PyLib/homePage.py", line 30, in caseList_fist_action
BasePage().img_save(HomePage().caseList_first(),HomePage().get_imgName_first()) # img_save为公共类中的一个方法
File "D:/Projects/jiapeng/PyLib/homePage.py", line 14, in caseList_first
caseList_first_ele = self.driver.find_element_by_css_selector("div[class='main1']>:nth-child(2)>:nth-child(2)>img")
AttributeError: 'NoneType' object has no attribute 'find_element_by_css_selector'