Python+Selenium进阶版(三)- 二次封装Selenium中几个方法

  目标:学习二次封装。把常用的几个webdriver的方法封装到自己写的几个类中器,这个封装过程叫二次封装Selenium方法。我们把打开站点,浏览器前进和后退,关闭和退出浏览器这个方法封装到一个新写的类中去。

  按照如下层次结构在PyCharm中新建两个包和两个.py文件:

  上图,baidu_search.py是我们编写测试脚本的python文件,具体测试代码写在这个文件。包test1下的basepage.py文件是这次我们介绍的二次封装selenium方法而新建的。

  注意:python中默认规则:

  1.包名和文件名都是小写;

  2.类名称首字母大写;

  3.函数名称小写;

  4.多个字母下划线隔开。

basepage.py的内容:

# coding = utf-8

class BasePage(object):
    """
    主要是把常用的几个Selenium方法封装到BasePage这个类;
    演示以下几个方法:
    back()
    forward()
    get()
    quit()
    """
    def __init__(self,driver):
        """
        写一个构造函数,有一个参数driver
        :param driver:
        """
        self.driver = driver

    def back(self):
        """
        浏览器后退按钮
        :return:
        """
        self.driver.back()

    def forward(self):
        """
        浏览器前进按钮
        :return:
        """
        self.driver.forward()

    def open_url(self,url):
        """
        打开url站点
        :param url:
        :return:
        """

    def quit_browser(self):
        """
        关闭并停止浏览器服务
        :return:
        """
        self.driver.quit()

  

  上面的''''''是文档注释,一般在类的开始和函数的开始,用两个''''''括起来,简单描述下这个类或者函数的功能。

  

  接下来看看,我们脚本文件中如何去调用我们自己封装过的方法。

  baidu_search.py的内容如下:

# coding=utf-8
import time
from selenium import webdriver
from test1.basepage import BasePage

class BaiduSearch(object):
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.implicitly_wait(10)

    basepage = BasePage(driver)

    def open_baidu(self):
        self.basepage.open_url("https://www.baidu.com")
        time.sleep(1)

    def test_search(self):
        self.driver.find_element_by_id('kw').send_keys("Selenium")
        time.sleep(1)
        print(self.driver.title)
        self.driver.quit()
        self.basepage.back()
        self.basepage.forward()
        self.basepage.quit_browser()

baidu = BaiduSearch()
baidu.open_baidu()
baidu.test_search()

  上面self.basepage的几行代码就是调用我们自己封装的方法去执行相关webdriver操作。

参考文章:https://blog.csdn.net/u011541946/article/details/70159538

原文地址:https://www.cnblogs.com/zhaocbbb/p/12658045.html