Python+Selenium中级篇之3-二次封装Selenium中几个方法

Posted xiaofeng778

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python+Selenium中级篇之3-二次封装Selenium中几个方法相关的知识,希望对你有一定的参考价值。

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

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

 

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

 

来看看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):
"""
浏览器后退按钮
:param none:
"""
self.driver.back()

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

def open_url(self, url):
"""
打开url站点
:param url:
"""
self.driver.get(url)

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

 

技术图片


上面的‘‘‘‘‘‘是文档注释,一般在类的开始和函数的开始,用两个‘‘‘‘‘‘括起来,简单描述下这个类或者函数的功能。
接下来看看,我们脚本文件中如何去调用我们自己封装过的方法。 (海量免费学习资料,软件测试交流:1140267353群,还会有同行一起技术交流)

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)
self.basepage.back()
self.basepage.forward()
self.basepage.quit_browser()

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


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

 

上一篇    Python+Selenium中级篇之2-Python中类/函数/模块的简单介绍和方法调用

下一篇    Python+Selenium中级篇之4-封装一个自己的类-浏览器引擎类/Python读取配置文件内容

 

以上仅供参考和借鉴,希望对你有所帮助!

点个关注不迷路!!!

小枫这几天整理的测试资料不知道大家会不会,哪方面需要改善,希望大家多多留言给点意见。

 

以上是关于Python+Selenium中级篇之3-二次封装Selenium中几个方法的主要内容,如果未能解决你的问题,请参考以下文章

Python+Selenium中级篇之8-Python中的继承的使用

Python+Selenium中级篇之2-Python中类/函数/模块的简单介绍和方法调用

Python+Selenium框架设计篇之4-框架内封装基类和实现POM

python+selenium十:selenium的二次封装

Selenium二次封装-Python版本

《手把手教你》系列进阶篇之2-python+ selenium自动化测试 - python基础扫盲(详细教程)