自动化场景实现 以及selenium关键字驱动运用
自动化测试岗位,一定会涉及到 测试框架的设计
自动化的目的:设计一款独属于自己的测试框架
现阶段测试框架的核心内容一定是基于关键字驱动的
解决代码的冗余
解决可读性
解决维护性
解决代码的复用性
最根本的解决方式:关键字驱动(selenium的二次封装)
关键字驱动的劣势:
它没有办法结合到一个系统完全百分百切合,只能做通用型的项目自动化,没有办法做精
简单的封装关键字驱动
有点在于 如果页面元素进行了变化 只需修改 脚本入口 下的参数即可
大大优化了代码量 以及维护性 复用性
简单实例:
from selenium import webdriver
class TestKeyWords(object):
# 初始化
def __init__(self,url,browser_type):
self.browser = self.open_browser(browser_type)
self.browser.get(url)
# 调用浏览器 判断用户使用的浏览器
def open_browser(self,browser_type):
if browser_type == 'chrome':
browser = webdriver.Chrome()
return browser
elif browser_type == 'firefox':
browser = webdriver.Firefox()
return browser
else:
print('type error')
# 元素定位 进行封装
def locator(self,locator_type,value):
if locator_type == 'xpath':
el = self.browser.find_element_by_xpath(value)
return el
elif locator_type == 'id':
el = self.browser.find_element_by_id(value)
return el
elif locator_type == 'name':
el = self.browser.find_element_by_name(value)
return el
# 调用定位函数 进行输入
def inupt_text(self,locator_type,value,text):
self.locator(locator_type,value).send_keys(text)
# 点击
def click_element(self,locator_type,value):
self.locator(locator_type, value).click()
# 关闭浏览器释放资源
def quit_browser(self):
self.browser.quit()
if __name__ == '__main__':
# 对类传入 url 已经浏览器
sr = TestKeyWords('http://www.baidu.com','chrome')
# 传入 定位方法 元素属性 已经输入内容
sr.inupt_text('id','kw','老祝头')
# 点击方法
sr.click_element('id','su')