class BasePage:
'''
基类,封装了元素定位方法
'''
def __init__(self,driver):
self.driver = driver
def openUrl(self,url = None):
self.driver.maximize_window()
if url == None:
self.driver.get(self.url)
else:
self.driver.get(url)
def get_by_id(self,_id):
return self.driver.find_element_by_id(_id)
def get_by_name(self,_name):
return self.driver.find_element_by_name(_name)
def get_by_xpath(self,_xpath):
return self.driver.find_element_by_xpath(_xpath)
def get_by_link_text(self,_link_text):
return self.driver.find_element_by_link_text(_link_text)
from StudyUnitTest.basepage import BasePage
class BaiduHomePage(BasePage):
/#页面元素类,继承BasePage,定位页面元素,方便用例调用,增加代码的可修改性
/#url赋值,对于页面地址修改,更为容易
"""百度首页元素class"""
def __init__(self,driver):
super(BaiduHomePage,self).__init__(driver=driver)
self.url = "https://www.baidu.com"
def get_baidu_click(self):
"""
返回“百度一下”元素
:param driver:
:return:
"""
return self.get_by_id("su")
def get_map_elemen(self):
return self.get_by_link_text("地图")
def get_news_ele(self):
return self.get_by_link_text("新闻")
def get_hao123_ele(self):
return self.get_by_link_text("hao123")
def get_inputTxt_ele(self):
return self.get_by_id("kw")
import unittest
from StudyUnitTest import elementPage
from selenium import webdriver
class F1(unittest.TestCase):
"""
用例类,初始化页面类,执行用例,断言等操作
"""
def setUp(self):
self.driver = webdriver.Chrome()
self.baiduPage = elementPage.BaiduHomePage(driver=self.driver)
def tearDown(self):
self.driver.quit()
'''验证'''
def test_open_map(self):
'''用例验证'''
self.baiduPage.openUrl()
self.baiduPage.get_map_elemen().click()
def test_open_news(self):
self.baiduPage.openUrl()
self.baiduPage.get_news_ele().click()
def test_open_hao123(self):
self.baiduPage.openUrl()
self.baiduPage.get_hao123_ele().click()
import os
import unittest
import HTMLTestRunner
def allTest():
/#allTest方法返回测试集
suit = unittest.TestLoader().discover(
start_dir= os.path.dirname(os.path.dirname(__file__))+os.sep+"StudyUnitTest",
pattern="case*.py",
top_level_dir=None
)
return suit
def run():
/#调用测试集,在指定文件夹生成测试报告
fp = os.path.join(os.path.dirname(os.path.dirname(__file__)),"reports","testReports.html")
HTMLTestRunner.HTMLTestRunner(
stream=open(fp,"wb"),
title="自动化测试报告",
description="自动化测试报告详情信息"
).run(allTest())
if __name__ == '__main__':
run()