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

 

接下来开始构造每个部分需要实现的逻辑。

 

posted @ 2022-06-23 17:47  lms21  阅读(84)  评论(0)    收藏  举报