1.什么是函数封装?
函数封装是一种函数的功能,它把一个程序员写的一个或者多个功能通过函数、类的方式封装起来,对外只提供一个简单的函数接口。
2.对selenium的常用操作进行封装
1)封装开启关闭浏览器
2)封装定位操作
3)封装对元素的基本操作
一.封装开启关闭浏览器
from selenium import webdriver
from time import sleep
class Common(object):
# 初始化
def __init__(self):
# 创建浏览器
self.driver = webdriver.Chrome()
# 浏览器最大化
self.driver.maximize_window()
def open(self, url):
# 打开初始网页
self.driver.get(url)
# 隐式等待
self.driver.implicitly_wait(10)
# 结束时执行
def __del__(self):
sleep(3)
self.driver.quit()
#主程序
if __name__ == '__main__':
com = Common()
com.open('http://www.baidu.com')
com.open('http://www.hao123.com')
二.封装定位操作
from selenium import webdriver
from time import sleep
class Common(object):
# 初始化
def __init__(self):
# 创建浏览器
self.driver = webdriver.Chrome()
# 浏览器最大化
self.driver.maximize_window()
def open(self, url):
# 打开初始网页
self.driver.get(url)
# 隐式等待
self.driver.implicitly_wait(10)
def local_Element(self, local_type, value):
"""
元素定位
:param local_type: 定位方法
:type local_type:
:param value: 元素值
:type value:
"""
el = None
if local_type == "id":
el = self.driver.find_element_by_id(value)
elif local_type == "name":
el = self.driver.find_element_by_name(value)
elif local_type == "class":
el = self.driver.find_element_by_class_name(value)
elif local_type == "tag":
el = self.driver.find_element_by_tag_name(value)
elif local_type == "link":
el = self.driver.find_element_by_link_text(value)
elif local_type == "partial_link":
el = self.driver.find_element_by_partial_link_text(value)
elif local_type == "Xpath":
el = self.driver.find_element_by_xpath(value)
elif local_type == "CSS":
el = self.driver.find_element_by_css_selector(value)
if el != None:
return el
# 结束时执行
def __del__(self):
sleep(3)
self.driver.quit()
# 主程序
if __name__ == '__main__':
com = Common()
com.open('http://www.baidu.com')
com.open('http://www.hao123.com')
三.封装对元素的基本操作
from selenium import webdriver
from time import sleep
class Common(object):
# 初始化
def __init__(self):
# 创建浏览器
self.driver = webdriver.Chrome()
# 浏览器最大化
self.driver.maximize_window()
# 打开初始链接
def open(self, url):
# 打开初始网页
self.driver.get(url)
# 隐式等待
self.driver.implicitly_wait(10)
# 元素定位
def local_Element(self, local_type, value):
"""
元素定位
:param local_type: 定位方法
:type local_type:
:param value: 元素值
:type value:
"""
el = None
if local_type == "id":
el = self.driver.find_element_by_id(value)
elif local_type == "name":
el = self.driver.find_element_by_name(value)
elif local_type == "class":
el = self.driver.find_element_by_class_name(value)
elif local_type == "tag":
el = self.driver.find_element_by_tag_name(value)
elif local_type == "link":
el = self.driver.find_element_by_link_text(value)
elif local_type == "partial_link":
el = self.driver.find_element_by_partial_link_text(value)
elif local_type == "Xpath":
el = self.driver.find_element_by_xpath(value)
elif local_type == "CSS":
el = self.driver.find_element_by_css_selector(value)
if el != None:
return el
# 元素操作封装
# 点击
def click(self, local_type, value):
self.local_Element(local_type, value).click()
# 传文本
def send(self, local_type, value, text):
self.local_Element(local_type, value).send_keys(text)
# 获取标签之间的文本
def get_text(self, local_type, value):
return self.local_Element(local_type, value).text
# 获取标签属性
def get_attr(self, local_type, value, text):
return self.local_Element(local_type, value).get_attribute(text)
# 结束时执行
def __del__(self):
sleep(3)
self.driver.quit()
# 主程序
if __name__ == '__main__':
com = Common()
com.open('http://www.baidu.com')
com.open('http://www.hao123.com')