# 对操作对象封装
class BasePage:
driver = webdriver.Chrome()
# 访问URL
def visit(self, url):
self.driver.get(url)# 元素定位
def locator(self, loc):
return self.driver.find_element(*loc)# 输入
def input(self, loc, txt):
self.locator(loc).send_keys(txt)
# 点击
def click(self, loc):
self.locator(loc).click()# 等待
def wait(self, time):
sleep(time)# 关闭
def close(self):
self.driver.quit()
# 对文本对象封装
class SearchPage(BasePage):
url = 'http://www.baidu.com'# 定位百度输入框
search_input = (By.NAME, 'wd')# 定位百度一下按钮
search_button = (By.ID, 'su')# 封装实现业务流程的函数
def search(self, txt):
self.visit(self.url)
self.wait(2)
self.input(self.search_input, txt)
self.wait(2)
self.click(self.search_button)
# 普通数据驱动
class Case(unittest.TestCase):
def test_search1(self):
driver = webdriver.Chrome()
txt = 'selenium'
SearchPage(driver).search(txt)
def test_search2(self):
driver = webdriver.Chrome()
txt = 'python'
SearchPage(driver).search(txt)
# 数据驱动
import [email protected]()
class Case(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
cls.driver = webdriver.Chrome()
cls.se = SearchPage(cls.driver)
@classmethod
def tearDownClass(cls) -> None:
cls.driver.quit()
@ddt.file_data('../data/searchTXT.yaml')
def test_search(self, txt):
self.se.search(txt)
if __name__ == '__main__':
unittest.main()
PS:只采用数据驱动的方式,对page模式有了新的改变
本文转载自: https://blog.csdn.net/testManger/article/details/131568594
版权归原作者 小赖同学啊 所有, 如有侵权,请联系我们删除。
版权归原作者 小赖同学啊 所有, 如有侵权,请联系我们删除。