zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    [原创] Python3.6+request+beautiful 半次元Top100 爬虫实战,将小姐姐的cos美图获得
    手算平方根和基于 Java BigInteger 的大整数平方根的实现
    Spyder项目创建,打开与使用
    手动实现自己的spring事务注解
    springboot2.x配置druid sql监控
    基于zookeeper实现分布式锁
    数据库中间件之mycat读写分离
    springboot + shiro 构建权限模块
    数据库中间件之mycat安装部署(一)
    使用jdk8 stream简化集合操作
  • 原文地址:https://www.cnblogs.com/zhaocbbb/p/12658045.html
Copyright © 2011-2022 走看看