UI自动化(selenium)


自动化框架介绍

这套框架依赖浏览器驱动(webdriver)操作浏览器,通过selenium库操作该驱动,然后通过unittest运行用例。

框架搭建

安装驱动

  1. 首先下载自己浏览器对应版本的驱动,不然驱动操作不了浏览器,这个网上到处都有

  2. 下载好了就把解压的驱动程序放到python安装文件中(因为python路径已经添加到环境变量了,所以放这儿也能被系统识别,而selenium能调用系统中的浏览器驱动)

驱动传导

  1. 一个用例第一步是打开浏览器窗口,方法是driver1 = webdriver.Chrome(),所以我们应该把该方法放到basecase类中,这样每个用例类都能继承该方法打开浏览器,又因为basecase类中的setup方法是每个用例都需要执行的,那将driver1 = webdriver.Chrome()放入setup方法中就显得水到渠成了。

    但将驱动driver放入用例basecase类中,页面类却无法继承,也就使用不到driver的元素查找、页面事件等方法,所以这个时候可以在basepage类用构造函数传入driver:

    def __init__(self, driver):
        self.driver = driver
    

    在写继承了该构造函数的页面类方法的时候就可以使用这个事实上还没传入的虚假的driver的元素查找、页面事件等方法,但实际用例中传入的是用例类的正真的driver(需注意,打开浏览器和返回的driver是两回事,前者一个用例只打开一次,后者会在页面元素查找、事件中反复使用)。

页面层

  1. 说明:
    一个页面做一个py文件,定义页面中的元素操作、url等,是用例最重要的部分。

用例层(驱动传导图要说)

其他层(runner、data、report)