unittest与selenium
unittest与selenium融合在一起进行web自动化测试
-
Commonlib目录存放通用模块(我们封装的selenium模块)
-
创建Business目录 ,根据业务创建测试功能模块
-
创建Testcase目录存放测试用例
Commonlib目录下创建通用模块Commonlib.py
Commonlib .py
from selenium import webdriver
import time
class Commonshare(object):
# 初始化方法
def __init__(self):
# 创建浏览器对象
self.driver = webdriver.Chrome()
# 设置隐式等待
self.driver.implicitly_wait(5)
# 设置浏览器的最大化
self.driver.maximize_window()
def open_url(self,url):
# 请求指定站点
self.driver.get(url)
time.sleep(3)
def locateElement(self, locate_type, value):
# 判断定位方式并调用相关方法
el = None
if locate_type == 'id':
el = self.driver.find_element_by_id(value)
elif locate_type == 'name':
el = self.driver.find_element_by_name(value)
elif locate_type == 'class':
el = self.driver.find_element_by_class_name(value)
elif locate_type == 'text':
el = self.driver.find_element_by_link_text(value)
elif locate_type == 'xpath':
el = self.driver.find_element_by_xpath(value)
elif locate_type == 'css':
el = self.driver.find_element_by_css_selector(value)
# 如果el不为None,则返回
if el is not None:
return el
# 指定对某一元素的点击操作
def click(self, locate_type, value):
# 调用定位方法进行元素定位
el = self.locateElement(locate_type,value)
# 执行点击操作
el.click()
time.sleep(1)
# 对指定的元素进行数据输入
def input_data(self,locate_type,value,data):
# 调用定位方法进行元素定位
el = self.locateElement(locate_type,value)
# 执行输入操作
el.send_keys(data)
# 获取指定元素的文本内容
def get_text(self, locate_type, value):
# 调用定位方法进行元素定位
el = self.locateElement(locate_type, value)
return el.text
# 获取指定元素的属性值
def get_attr(self, locate_type, value, data):
# 调用定位方法进行元素定位
el = self.locateElement(locate_type, value)
return el.get_attribute(data)
# 收尾清理方法
def __del__(self):
time.sleep(3)
self.driver.quit()
if __name__ == '__main__':
pass
Business目录创建测试功能模块Login.py
Login .py
# 导入selenium封装类
from Commonlib.Commonlib import Commonshare
class Login(Commonshare):
def login(self,user,pwd):
# 跳转到1号店
self.open_url('http://www.yhd.com/')
# 定位到登陆按钮进行点击,点击之后进入一号店登陆界面
self.click('class','hd_login_link')
# 定位并输入账号
self.input_data('id','un',user)
# 定位并输入密码
self.input_data('id','pwd',pwd)
# 点击登陆按钮
self.click('id','login_button')
if __name__ == '__main__':
log = Login()
log.login('hack_ai_buster','1qaz2wsx#EDC')
注意:如果 from Commonlib.Commonlib import Commonshare 该条导包语句出错,可以将Commonlib的上级文件夹设为源文件夹
右击testproject文件夹,选择 Mark Directory as Sources Root
运行 login .py 文件,模拟登陆