Web自动化实战(1)-- litemail电商项目
思路梳理
梳理测试用例:
1.流程
添加类目:
2.前置后置动作
前置:
创建driver
添加隐式等待
窗口最大化
后置:
driver销毁
class TestLitemall:
def setup_class(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(5)
self.driver.maximize_window()
def teardown_class(self):
self.driver.quit()
构造PO模型(搭框架)
- 创建页面类:一个页面创建一个类,还需要加多个page的基类basepage,把page类的通用方法放在这。
用例涉及页面如下:
登录页面
首页
商品类目页面
创建类目页面
代码实现:
- 创建页面类方法
base页面:init/或者封装一些通用方法,可以后面慢慢添加
登录页面:登录
首页:进入类目页面
商品类目页面:点击添加,获取创建结果
创建类目页面:创建新类目
class BasePage:
_BASE_URL = ""
def __init__(self,base_driver=None):
if base_driver:
self.driver = base_driver
else:
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(5)
self.driver.maximize_window()
#????? why if ?
if not self.driver.current_url.startswith("http"):
self.driver.get(self._BASE_URL)
def do_find(self,by,locator=None):
if locator:
return self.driver.find_element(by,locator)
else:
return self.driver.find_element(*by)
def do_finds(self,by,locator=None):
if locator:
return self.driver.find_element(by, locator)
else:
return self.driver.find_element(*by)
def do_send_keys(self,value,by,locator=None):
if locator:
return self.driver.find_element(by,locator).send_keys(value)
else:
return self.driver.find_element(*by).send_keys(value)
class LoginPage(BasePage):
def login(self):
pass
class HomeScreenPage(BasePage):
def enter_category_page(self):
pass
class CategoryPage(BasePage):
def enter_add_category(self):
pass
def get_result(self):
pass
class AddCategoryPage(BasePage):
def add_category(self):
pass
接下来开始构造每个部分需要实现的逻辑。