Пример #1
0
class TestMinePage:
    def setup(self):
        self.driver = get_driver()
        self.mine_page = MinePage(self.driver)
        self.mine_page.switch_to_mine_page()

    def teardown(self):
        self.driver.quit()

    @allure.step(title='测试登录的脚本')
    @pytest.mark.parametrize('args', data_with_key('test_login'))
    def test_login(self, args):
        username = args['username']
        password = args['password']
        toast = args['toast']
        screenshot_name = username + '_login'
        # 输入用户名
        allure.attach('', '输入用户名')
        self.login_page.input_username(username)
        # 输入密码
        allure.attach('', '输入密码')
        self.login_page.input_password(password)
        # 点击登录按钮
        allure.attach('', '点击登录按钮')
        self.login_page.click_login()
        # 判断是否登录成功
        allure.attach(toast, '判断是否登录成功')
        res = self.login_page.is_toast_exist(toast, True, screenshot_name)
        # 上传截图
        allure.attach(
            open('screen/' + screenshot_name + '.png', 'rb').read(), '截图',
            allure.attachment_type.PNG)
        assert res
Пример #2
0
 def test_shopping_success(self):
     tel = '13981401921'
     password = '******'
     indexPage = IndexPage(self.driver)
     indexPage.open("http://172.18.0.50:9003/")
     sleep(3)
     indexPage.mine_button()  #点击我的
     minePage = MinePage(self.driver)
     minePage.login_button()
     loginPage = LoginPage(self.driver)
     loginPage.tel_input(tel)
     loginPage.pwd_input(password)
     loginPage.submit_button()
     sleep(3)
Пример #3
0
class MineHandle:
    def __init__(self, driver):
        self.mine_page = MinePage(driver)

    def click_tab_mine(self):
        """
        根据元素点击底部栏"我的"按钮
        """
        element = self.mine_page.get_tab_mine()
        if element is None:
            return
        element.click()

    def click_login_entrance(self):
        """
        根据元素点击"去登陆"按钮
        """
        self.mine_page.get_login_entrance().click()

    def click_mine_req_entranc(self):
        """
        根据元素点击"我的需求"按钮
        """
        self.mine_page.get_mine_req_entrance().click()

    def click_back(self):
        """
        根据元素点击"返回"按钮
        """
        self.mine_page.get_back_button().click()
 def mine_page(self):
     """我的页面"""
     return MinePage(self.driver)
Пример #5
0
 def mine_button(self):
     return MinePage(self.driver)
Пример #6
0
 def __init__(self, driver):
     self.mine_page = MinePage(driver)
     self.ea = ElementAction(driver)
Пример #7
0
class MineHandle:
    """操作我的页面的元素"""
    def __init__(self, driver):
        self.mine_page = MinePage(driver)
        self.ea = ElementAction(driver)

    def click_mine_tab_element(self):
        """点击我的tab元素"""
        self.ea.click(self.mine_page.get_mine_tab_element())

    def click_user_image_element(self):
        """点击头像元素"""
        self.ea.click(self.mine_page.get_user_image_element())

    def get_user_name(self):
        """获取用户名"""
        return self.ea.get_text(self.mine_page.get_user_name_element())

    def get_login_title(self):
        """获取登录文案"""
        return self.ea.get_text(self.mine_page.get_login_title_element())

    def click_friend_btn_element(self):
        """点击好友元素"""
        self.ea.click(self.mine_page.get_friend_btn_element())

    def click_collect_btn_element(self):
        """点击收藏元素"""
        self.ea.click(self.mine_page.get_collect_btn_element())

    def get_collect_count(self):
        """获取收藏数"""
        self.ea.get_text(self.mine_page.get_collect_count_element())

    def click_notice_btn_element(self):
        """点击消息元素"""
        self.ea.click(self.mine_page.get_notice_btn_element())

    def click_sign_btn_element(self):
        """点击签到元素"""
        self.ea.click(self.mine_page.get_sign_btn_element())

    def click_onePrice_btn_element(self):
        """点击一元购课元素"""
        self.ea.click(self.mine_page.get_onePrice_btn_element())

    def click_myCourse_btn_element(self):
        """点击我的课程元素"""
        self.ea.click(self.mine_page.get_myCourse_btn_element())

    def click_inviteReward_btn_element(self):
        """点击邀请奖励元素"""
        self.ea.click(self.mine_page.get_inviteReward_btn_element())

    def click_welfare_btn_element(self):
        """点击福利中心元素"""
        self.ea.click(self.mine_page.get_welfare_btn_element())

    def click_ad_btn_element(self):
        """点击广告元素"""
        self.ea.click(self.mine_page.get_ad_btn_element())

    def click_childInfo_btn_element(self):
        """点击孩子档案元素"""
        self.ea.click(self.mine_page.get_childInfo_btn_element())

    def get_childInfoIntroduce(self):
        """获取孩子档案"""
        return self.ea.get_text(
            self.mine_page.get_childInfoIntroduce_element())

    def click_showcaseView_btn_element(self):
        """点击我的发表元素"""
        self.ea.click(self.mine_page.get_showcaseView_btn_element())

    def click_courseOrder_btn_element(self):
        """点击课程订单元素"""
        self.ea.click(self.mine_page.get_courseOrder_btn_element())

    def get_orderIntroduce(self):
        """获取课程订单介绍"""
        return self.ea.get_text(self.mine_page.get_orderIntroduce_element())

    def click_growthRecord_btn_element(self):
        """点击成长记录元素"""
        self.ea.click(self.mine_page.get_growthRecord_btn_element())

    def get_growthRecordNewFlag(self):
        """获取成长记录NEW"""
        return self.ea.get_text(
            self.mine_page.get_growthRecordNewFlag_element())

    def get_growthRecordIntroduce(self):
        """获取成长记录介绍"""
        return self.ea.get_text(
            self.mine_page.get_growthRecordIntroduce_element())

    def click_browseHistory_btn_element(self):
        """点击浏览记录元素"""
        self.ea.click(self.mine_page.get_browseHistory_btn_element())

    def click_historyPush_btn_element(self):
        """点击历史推送元素"""
        self.ea.click(self.mine_page.get_historyPush_btn_element())

    def get_historyPushIntroduce(self):
        """获取历史推送介绍"""
        return self.ea.get_text(
            self.mine_page.get_historyPushIntroduce_element())

    def click_help_feedback_btn_element(self):
        """点击帮助与反馈元素"""
        self.ea.click(self.mine_page.get_help_feedback_btn_element())

    def click_setting_btn_element(self):
        """点击账号与设置元素"""
        self.ea.click(self.mine_page.get_setting_btn_element())
Пример #8
0
 def setup(self):
     self.driver = get_driver()
     self.mine_page = MinePage(self.driver)
     self.mine_page.switch_to_mine_page()
Пример #9
0
class MineBusiness:
    """我的模块业务交互"""

    def __init__(self, driver):
        self.mp = MinePage(driver)
        self.mh = MineHandle(driver)
        self.lp = LoginPage(driver)
        self.lh = LoginHandle(driver)
        self.ea = ElementAction(driver)

    def check_user_isTourist(self):
        """检查用户身份"""
        if self.mh.get_user_name() == '游客':
            return True
        else:
            return False

    def go_mine(self):
        """成功进入我的页面&验证"""
        self.mh.click_mine_tab_element()
        if self.check_user_isTourist():
            if self.mh.get_login_title() == '登录' and self.ea.element_exist(
                    self.mp.get_user_image_element()) and self.ea.element_exist(
                self.mp.get_sign_btn_element()):
                return True
            else:
                return False
        else:
            try:
                self.mp.get_login_title_element() == '登录'
                self.mh.get_collect_count() == '1'
                return False
            except:
                self.mh.get_collect_count() == '1'
                return True

    def user_image(self):
        """我的页面头像点击跳转"""
        if self.check_user_isTourist():
            self.mh.click_user_image_element()
            if self.lh.get_login_title() == "手机号登录" and self.ea.element_exist(
                    self.lp.get_qq_btn_element()) and self.ea.element_exist(
                self.lp.get_weibo_btn_element()) and self.ea.element_exist(self.lp.get_loginPage_wechat_element()):
                return True
            else:
                return False
        else:
            user_name = self.mh.get_user_name()
            self.mh.click_user_image_element()
            if self.ea.get_text(self.mp.get_userName_element()) == user_name and self.ea.element_exist(
                    self.mp.get_updatePersonal_element()) and len(
                self.ea.get_text(self.mp.get_threadName_element())) > 0:
                return True
            else:
                return False

    def friend(self):
        """我的页面好友按钮点击跳转"""
        if self.check_user_isTourist():
            self.mh.click_friend_btn_element()
            if self.ea.element_exist(self.lp.get_login_panel_element()) and self.ea.element_exist(
                    self.lp.get_register_btn_element()):
                return True
            else:
                return False
        else:
            self.mh.click_friend_btn_element()
            if self.ea.element_exist(self.mp.get_agency_element()) and self.ea.element_exist(
                    self.mp.get_friend_title_element()) and self.ea.element_exist(
                self.mp.get_recommend_friend_element()):
                return True
            else:
                return False

    def collect(self):
        """我的页面收藏按钮点击跳转"""
        if self.check_user_isTourist():
            self.mh.click_collect_btn_element()
            if self.ea.element_exist(self.lp.get_login_panel_element()) and self.ea.element_exist(
                    self.lp.get_register_btn_element()):
                return True
            else:
                return False
        else:
            self.mh.click_collect_btn_element()
            if self.ea.element_exist(self.mp.get_collect_time_element()) and self.ea.element_exist(
                    self.mp.get_collect_title_element()):
                return True
            else:
                return False

    def notice(self):
        """我的页面消息按钮点击跳转"""
        self.mh.click_notice_btn_element()
        if self.ea.element_exist(self.mp.get_notice_sendLetter_element()) and self.ea.element_exist(
                self.mp.get_notice_1_element()) and self.ea.element_exist(self.mp.get_notice_bang_element()):
            return True
        else:
            return False

    def login_pass(self):
        """成功登录
        1、以游客判断登录状态,如果是游客身份
        2、点击我的头像,进入手机号登录页面
        3、输入手机号,点击发送验证码
        4、输入验证码页面输入验证码点击登录
        5、再次以是否为游客判断是否登录成功
        """
        if self.mh.get_user_name == '游客':
            self.mh.click_user_image_element()

    def test_loginRegister_panel(self):
        """测试未登录时的登录注册弹框"""
        flag = False
        el_lists = [
            self.mp.get_friend_btn_element(), self.mp.get_collect_btn_element(),
            self.mp.get_sign_btn_element(), self.mp.get_childInfo_btn_element(),
            self.mp.get_showcaseView_btn_element(), self.mp.get_courseOrder_btn_element()
        ]
        if self.check_user_isTourist():
            for i in el_lists:
                self.ea.click(i)
                if self.ea.element_exist(self.lp.get_login_panel_element()):
                    flag = True
                    self.lh.click_close_btn()
                else:
                    flag = False
                    break
            return flag

    def growthRecord(self):
        """未登录测试点击成长记录是否有登录注册弹框"""
        self.ea.click(self.mp.get_growthRecord_btn_element())
        if self.ea.element_exist(self.lp.get_login_panel_element()):
            self.lh.click_close_btn()
            return True
        else:
            return False

    def aa(self):
        self.mh.click_user_image_element()
Пример #10
0
    def goto_mine_page(self):

        self.find(self._mine_button).click()
        return MinePage()
Пример #11
0
 def login_member(self):
     return MinePage(self.driver)
Пример #12
0
 def local_by_log(self, func):
     by = MinePage(func)[1][0]
     local = func[1][0]
     logger.info(str(by) + "定位,操作元素:" + local)
Пример #13
0
 def __init__(self, driver):
     self.get_by_local = GetByLocal(driver)
     self.mine_handle = MineHandle(driver)
     self.mine_page = MinePage(driver)
Пример #14
0
 def __init__(self, driver):
     self.mp = MinePage(driver)
     self.mh = MineHandle(driver)
     self.lp = LoginPage(driver)
     self.lh = LoginHandle(driver)
     self.ea = ElementAction(driver)
Пример #15
0
 def __init__(self, driver):
     self.mine_page = MinePage(driver)
Пример #16
0
 def mine_page(self):
     return MinePage(self.driver)
Пример #17
0
 def test_add_adress_case(self):
     """添加地址"""
     name = "leo"
     tel = "18227589708"
     city = "成都市"
     address = "锦江区东方广场c座"
     doorplate = "7楼"
     hm = HomePage(self.driver)
     hm.click(hm.classify_tab_loc)  # 点击分类标签
     cifp = ClassifyPage(self.driver)  # 实例化商品分类页
     cifp.click(cifp.search_text_loc)  # 点击搜索框
     cifp.send_keys(cifp.search_view_loc, "牛奶")  # 输入牛奶
     cifp.click(cifp.suggest_contentt_loc)  # 点击特仑苏牛奶
     gls = guess_like_shop(self.driver, "特仑苏纯牛奶",
                           cifp.result_recycler_loc)  # 选择包含特仑苏纯牛奶的商品
     spcp = ShoppingCartPage(self.driver)  # 实例化购物车页面
     cifp.click(cifp.buy_now_loc, gls)  # 点击需要买的商品
     cifp.click(cifp.cart_view_loc)  # 跳转购物车页面
     try:
         spcp.click(spcp.check_out_loc)  # 点击去结算
     except Exception:
         spcp.click(spcp.close_btn_new_loc)  # 如果有新人专享关闭新人专享
         spcp.click(spcp.check_out_loc)  # 点击去结算
     odfp = OrderFillPage(self.driver)  #实例化结算页面
     try:
         odfp.click(odfp.address_lable_loc)  #点击去填写地址
     except Exception:
         odfp.click(odfp.redemption_give_up_loc)  #放弃换购
         odfp.click(odfp.address_lable_loc)  #点击去填写地址
     aap = AdressAddPage(self.driver)  #实例化填写地址页面
     aap.click(aap.edit_address_receiver_loc)
     aap.send_keys(aap.edit_address_receiver_loc, name)  #填写收件人姓名
     aap.click(aap.sex_sir_loc)  #性别选男
     aap.click(aap.edit_address_tel_loc)
     aap.send_keys(aap.edit_address_tel_loc, tel)  #填写电话号码
     aap.click(aap.edit_detail_address_loc)  #点击填写地址
     nadp = NewAddAdressPage(self.driver)  #实例化新加地址页面
     nadp.click(nadp.entrance_choose_city_loc)  #点击搜索框旁边城市
     cocp = ChooseCityPage(self.driver)  #实例化选择城市
     cocp.click(cocp.search_address_input_city_loc)  #点击一下城市输入框
     cocp.send_keys(cocp.search_address_input_city_loc, city)  #输入成都市
     cocp.click(cocp.click_input_city_loc)  #点击输入的城市成都市
     nadp.click(nadp.search_address_input_loc)
     nadp.send_keys(nadp.search_address_input_loc, address)  #输入锦江区东方广场c座
     nadp.click(nadp.choose_input_address_loc)  #点击输入的地址
     aap.click(aap.edit_doorplate_loc)
     aap.send_keys(aap.edit_doorplate_loc, doorplate)  #输入门牌号
     aap.click(aap.home_address_tags_loc)  #选择家标签
     aap.click(aap.save_address_loc)  #保存地址
     self.assertEqual(
         odfp.text(odfp.address_detail_loc).strip(),
         address + doorplate)  #断言
     odfp.click(odfp.go_back_shopping_cart_loc)  #返回购物车
     spcp.click(spcp.delete_the_goods_loc)  #点击删除
     spcp.click(spcp.ensure_delete_the_goods_loc)  #确认删除
     spcp.click(spcp.mine_tab_loc)  #去我的
     mp = MinePage(self.driver)  #实例化我的页面
     mp.to_up()  #向上滑
     mp.click(mp.shipping_address_loc)  #点击收货地址
     esap = EditShippingAddressPage(self.driver)  #实例化编辑地址
     esap.click(esap.edit_shipping_address_loc)  #点击编辑
     esap.click(esap.delete_address_loc)  #点击删除