selenium的二次封装

本文来介绍,如何把常用的几个webdriver的方法封装到自己写的一个类中去,这个封装过程叫二次封装Selenium方法。我们把打开站点,浏览器前进和后退,关闭和退出浏览器这这个方法封装到一个新写的类中去。

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


      上图,baidu_search.py是我们编写测试脚本的python文件,具体测试代码写在这个文件。包test1下的basepage.py文件是这次我们介绍的二次封装selenium方法而新建的。这里提一下,python中默认规则,包名和文件名都是小写,类名称单词首字母大写,函数名称小写,多个字母下划线隔开。我们尽量遵守下这个不成文的约定。


来看看basepage.py的内容:

[python]  view plain  copy
  1. # coding=utf-8  
  2.   
  3.   
  4. class BasePage(object):  
  5.     """ 
  6.     主要是把常用的几个Selenium方法封装到BasePage这个类,我们这里演示以下几个方法 
  7.     back() 
  8.     forward() 
  9.     get() 
  10.     quit() 
  11.     """  
  12.     def __init__(self, driver):  
  13.         """ 
  14.         写一个构造函数,有一个参数driver 
  15.         :param driver: 
  16.         """  
  17.         self.driver = driver  
  18.   
  19.     def back(self):  
  20.         """ 
  21.         浏览器后退按钮 
  22.         :param none: 
  23.         """  
  24.         self.driver.back()  
  25.   
  26.     def forward(self):  
  27.         """ 
  28.         浏览器前进按钮 
  29.         :param none: 
  30.         """  
  31.         self.driver.forward()  
  32.   
  33.     def open_url(self, url):  
  34.         """ 
  35.         打开url站点 
  36.         :param url: 
  37.         """  
  38.         self.driver.get(url)  
  39.   
  40.     def quit_browser(self):  
  41.         """ 
  42.         关闭并停止浏览器服务 
  43.         :param none: 
  44.         """  
  45.         self.driver.quit()  
上面的''''''是文档注释,一般在类的开始和函数的开始,用两个''''''括起来,简单描述下这个类或者函数的功能。

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

baidu_search.py的内容如下:

[python]  view plain  copy
  1. # coding=utf-8  
  2. import time  
  3. from selenium import webdriver  
  4. from test1.basepage import BasePage  
  5.   
  6.   
  7. class BaiduSearch(object):  
  8.   
  9.     driver = webdriver.Chrome()  
  10.     driver.maximize_window()  
  11.     driver.implicitly_wait(10)  
  12.   
  13.     basepage = BasePage(driver)  
  14.   
  15.     def open_baidu(self):  
  16.         self.basepage.open_url("https://www.baidu.com")  
  17.         time.sleep(1)  
  18.   
  19.     def test_search(self):  
  20.         self.driver.find_element_by_id('kw').send_keys("Selenium")  
  21.         time.sleep(1)  
  22.         self.basepage.back()  
  23.         self.basepage.forward()  
  24.         self.basepage.quit_browser()  
  25.   
  26. baidu = BaiduSearch()  
  27. baidu.open_baidu()  
  28. baidu.test_search()  

      上面self.basepage的几行代码就是调用我们自己封装的方法去执行相关webdriver操作。这个只是一个简单的封装介绍,等后面,我们介绍了字符串切割,我们会再次介绍二次封装Selenium方法,例如将会把八大find_element方法封装到一个方法里去。

如需更多了解和交流,请加QQ群:49044146

猜你喜欢

转载自blog.csdn.net/qq_36928945/article/details/80236115