def test_login_success(self): ''' 手机号、验证码成功登陆 ''' print('**输入正确的手机号、验证码,点击登录,验证登录成功**') admin_token = ReturnToken().return_saas_token_by_api() LoginPage(self.driver).send_phone() start_time = LoginPage(self.driver).click_get_code_btn() print(start_time) code = LoginPage(self).get_code(admin_token, start_time) get_code_time = datetime.datetime.now() print(get_code_time) if code is not None: LoginPage(self.driver).send_pwd(code) LoginPage(self.driver).click_submit_btn() sleep(2) try: LoginPage(self.driver).click_invite_cancel() except exceptions.TimeoutException: print('**m没有出现输入邀请码页面**') print(self.driver.current_url) current_url = self.driver.current_url BasePage(self.driver).assert_true('login/hLogin' not in current_url) BasePage(self.driver).assert_true(BasePage(self.driver).is_element_present((By.CLASS_NAME, "uni-tabbar"))) BasePage(self.driver).check_exist_in_page("购物车") sleep(2) else: TestCase().fail(msg="没有收到验证码")
def test_orders_info_check(self): ''' 检查订单列表的商品信息是否展示 ''' res = BasePage(self.driver).is_element_present( OrderPage(self.driver)._order_code) if res is True: print('订单编号模块已展示') else: TestCase().fail("订单编号模块未展示") res = BasePage(self.driver).is_element_present( OrderPage(self.driver)._order_product_spec) if res is True: print('订单商品规格模块已展示') else: TestCase().fail("订单商品规格模块未展示") BasePage(self.driver).is_element_present( OrderPage(self.driver)._order_product_name) if res is True: print('订单商品名称模块已展示') else: TestCase().fail("订单商品名称模块未展示") BasePage(self.driver).is_element_present( OrderPage(self.driver)._order_product_price) if res is True: print('订单商品价格模块已展示') else: TestCase().fail("订单商品价格模块未展示") BasePage(self.driver).is_element_present( OrderPage(self.driver)._order_product_num) if res is True: print('订单商品数量模块已展示') else: TestCase().fail("订单商品数量模块未展示")
def test_page_show_check(self): ''' 商品分类页面元素展示 ''' print('**验证分类页面的元素是否已经展示**') res = BasePage(self.driver).is_element_present( CategoryPage(self.driver)._search_box) if res is True: print('搜索框展示在页面上') else: print('搜索框未出现在页面上') res = BasePage(self.driver).is_element_present( CategoryPage(self.driver)._cate) if res is True: print('左侧前端分类展示在页面上') else: TestCase().fail('左侧前端分类未出现在页面上') res = BasePage(self.driver).is_element_present( CategoryPage(self.driver)._child_cate_region) if res is True: print('右侧商品分类展示在页面上') else: TestCase().fail('右侧商品分类未出现在页面上') print(self.driver.title) BasePage(self.driver).check_exist_in_string('分类', self.driver.title)
def test_all_order_link(self): ''' 点击全部订单跳转 ''' print("**我的页面元素是否展示**") PersonalPage(self.driver).click_all_order_link() BasePage(self.driver).check_exist_in_string('我的订单', self.driver.title) BasePage(self.driver).check_exist_in_string('myOrders', self.driver.current_url) delivery_method_tab_classname = BasePage( self.driver).get_element_attribute( OrderPage(self.driver).get_delivery_method_tab(1), 'className') time.sleep(5) delivery_method_tab_innertext = BasePage( self.driver).get_element_attribute( OrderPage(self.driver).get_delivery_method_tab(1), 'innerText') order_state_tab_classname = BasePage( self.driver).get_element_attribute( OrderPage(self.driver).get_order_state_tab(1), 'className') order_state_tab_innertext = BasePage( self.driver).get_element_attribute( OrderPage(self.driver).get_order_state_tab(1), 'innerText') BasePage(self.driver).check_exist_in_string( 'switchLeft', delivery_method_tab_classname) BasePage(self.driver).check_exist_in_string( '快递配送', delivery_method_tab_innertext) BasePage(self.driver).check_exist_in_string('seletTitle', order_state_tab_classname) BasePage(self.driver).check_exist_in_string('全部', order_state_tab_innertext)
def test_goto_saas(self): PointsPage(self.driver).click_saas_link() res = BasePage(self.driver).is_element_present(HomePage(self.driver)._saas_personal_info) if res is True: print('saas的个人信息页面已展示') else: TestCase().fail('saas页面个人信息模块未展示') BasePage(self.driver).check_exist_in_string('saash5', BasePage(self.driver).get_url())
def test_search_cancel(self): ''' 在搜索页,点击取消按钮,返回到上一页 ''' print('**在搜索页面点击取消,验证是否会返回到首页**') HomePage(self.driver).click_search_box() SearchPage(self.driver).click_cancel_button() sleep(2) BasePage(self.driver).assert_true( BasePage(self.driver).is_element_present( HomePage(self.driver)._shopWindow))
def test_recharge_link(self): ''' 点击余额按钮,进入到余额页面 ''' PersonalPage(self.driver).click_balance() BasePage(self.driver).assert_true( BasePage(self.driver).is_element_present( BalancePage(self.driver)._balance_remain)) BasePage(self.driver).check_exist_in_string( 'my/remain', BasePage(self.driver).get_url())
def test_create_order_no_product(self): ''' 购物车商品,不选择,点击结算,提示 ''' print('**在购物车页面,不勾选商品,直接点击结算,校验是否有预期的toast**') CartPage(self.driver).click_create_order_btn() flag = BasePage(self.driver).is_show_toast() BasePage(self.driver).assert_equal(flag, True) toast_text = BasePage(self.driver).get_toast_text() expected_toast_text = '请选择需要结算的商品' BasePage(self.driver).assert_true(toast_text in expected_toast_text)
def test_product_buy(self, value=2): ''' 在商品详情页,点击立即购买 ''' print('**在商品详情页,点击立即购买,验证是否跳转到提交订单页**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box() SearchPage(self.driver).click_search_product_01() ProductPage(self.driver).product_buy(value) BasePage(self.driver).assert_true(ec.title_contains('提交订单')) BasePage(self.driver).assert_true( ec.url_contains('/pages/order/createOrder'))
def test_return_home(self): ''' 商品详情页的返回主页按钮 ''' print('**在商品详情页,点击左下角的首页按钮,验证是否跳转到首页**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box() SearchPage(self.driver).click_search_product_01() ProductPage(self.driver).click_home_button() BasePage(self.driver).assert_true( BasePage(self.driver).is_element_present( HomePage(self.driver)._product))
def test_go_to_cart(self): ''' 商品详情页的跳转到购物车 ''' print('**在商品详情页,点击左下角的购物车按钮,验证是否跳转到购物车页面**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box() SearchPage(self.driver).click_search_product_01() ProductPage(self.driver).click_cart_button() BasePage(self.driver).assert_true(ec.title_contains('购物车')) BasePage(self.driver).assert_true( ec.url_contains('emall/pages/myCart/myCart'))
def test_create_order_check(self, product_name, num): ''' 在支付页面元素校验 ''' print('**在商品详情页,点击提交订单,验证是否跳转到提交订单页面**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box(product_name) SearchPage(self.driver).click_search_product_01() ProductPage(self.driver).product_buy(num) CreateOrderPage(self.driver).click_creat_order_btn() sleep(2) BasePage(self.driver).assert_true(ec.url_contains('pages/pay/pay?orderId')) BasePage(self.driver).assert_true(ec.title_is('订单支付')) BasePage(self.driver).assert_true(BasePage(self.driver).is_element_present(CreateOrderPage(self.driver)._pay_btn)) print("提交订单按钮已展示") BasePage(self.driver).assert_true(BasePage(self.driver).is_element_present(CreateOrderPage(self.driver)._pay_fee_form)) print("价格区域已展示") # 点击立即支付按钮 CreateOrderPage(self.driver).click_pay_btn() # 断言有没有报错 try: toast_txt = BasePage(self.driver).get_toast_text() TestCase().fail("支付报错:" + toast_txt) except exceptions.TimeoutException: BasePage(self.driver).assert_true(ec.url_contains('prepay_id=wx'))
def test_click_search_box(self, value): ''' 商品分类页面搜索框 ''' print('**搜索框是否可用**') CategoryPage(self.driver).click_search_box() res = BasePage(self.driver).is_element_present( SearchPage(self.driver)._cancel_button) if res is True: print('搜索取消按钮展示在页面上') else: print('搜索取消按钮未出现在页面上') res = BasePage(self.driver).is_element_present( SearchPage(self.driver)._search_box) if res is True: print('搜索输入框展示在页面上') else: TestCase().fail('搜索输入框未出现在页面上') SearchPage(self.driver).send_key_search_box(value)
def test_search(self, value): ''' 输入商品名称进行搜索 ''' print('**输入商品名称搜索,验证是否有搜索到相关商品**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box(value) sleep(2) for productName in SearchPage(self.driver).get_product_names(): name = SearchPage(self.driver).get_element_value(productName) print("商品名称:" + name) BasePage(self.driver).check_exist_in_string(value, name)
def test_points_info_check(self): ''' 积分明细页面成功展示 ''' print('**验证积分明细页面元素是否展示**') points_num_page = PointsPage(self.driver).get_points_num() point_item_1_page = PointsPage(self.driver).get_points_item_1_page() points_api = PointsPage(self.driver).get_point_item_1_api(self.token) points_num_api = points_api[0] points_item_1_api = points_api[1] BasePage(self.driver).assert_equal(points_num_page, points_num_api) TestCase().assertListEqual(point_item_1_page, points_item_1_api)
def test_click_cate(self): ''' 分类点击,切换选中 ''' print('**分类是否可点击**') CategoryPage(self.driver).click_cate() res = BasePage(self.driver).is_element_present( CategoryPage(self.driver)._child_cate_region) if res is True: print('右侧商品分类展示在页面上') else: TestCase().fail('右侧商品分类未出现在页面上')
def test_coupon_link(self): PersonalPage(self.driver).click_coupons() BasePage(self.driver).assert_true( BasePage(self.driver).is_element_present( CouponsPage(self.driver)._coupon_list)) BasePage(self.driver).assert_true( BasePage(self.driver).is_element_present( CouponsPage(self.driver)._coupon_exchange_record)) BasePage(self.driver).assert_true( BasePage(self.driver).is_element_present( CouponsPage(self.driver)._tabs)) BasePage(self.driver).check_exist_in_string( 'coupons/myCoupons', BasePage(self.driver).get_url())
def test_sku_add_to_car(self, value=2): ''' 从商品详情的规格弹窗,加入购物车 ''' print('**在商品详情页,打开规格弹窗,点击加入购物车,验证购物车商品数量是否增加**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box() SearchPage(self.driver).click_search_product_01() before = ProductPage(self.driver).get_car_num_value() ProductPage(self.driver).product_sku_add_to_car(value) after = ProductPage(self.driver).get_car_num_value() after_expected = int(before) + int(value) BasePage(self.driver).assert_equal(int(after), after_expected)
def test_product_add_to_car(self, value, num): ''' 商品详情页,点击加入购物车 ''' print('**在商品详情页,点击加入购物车,验证购物车的商品数量是否对应增加**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box(value) SearchPage(self.driver).click_search_product_01() before = ProductPage(self.driver).get_car_num_value() ProductPage(self.driver).product_add_to_car(num) after = ProductPage(self.driver).get_car_num_value() after_expected = int(before) + int(num) BasePage(self.driver).assert_equal(int(after), after_expected)
def test_product_detail(self): ''' 购物车商品,点击跳转到商品详情页 ''' print('**在购物车列表,点击第一个商品详情,验证是否跳转到商品详情页面**') i = 3 product_name = CartPage(self.driver).get_product_name_list() CartPage(self.driver).click_product_name_i(i) sleep(2) product_detail_name = ProductPage(self.driver).get_product_name() BasePage(self.driver).assert_equal(product_name[i - 1], product_detail_name) ec.url_contains("pages/product/detail?id") ec.title_is("商品详情")
def test_page_show_check(self): ''' 我的页面元素展示 ''' print('**验证我的页面的元素是否已经展示**') res = BasePage(self.driver).is_element_present( PersonalPage(self.driver)._order) if res is True: print('订单模块显示在页面上') else: TestCase().fail('页面中未找到订单模块') BasePage(self.driver).assert_true( BasePage(self.driver).is_element_present( PersonalPage(self.driver)._distribution)) BasePage(self.driver).assert_true( BasePage(self.driver).is_element_present( PersonalPage(self.driver)._member_info)) BasePage(self.driver).assert_true( BasePage(self.driver).is_element_present( PersonalPage(self.driver)._other_item)) BasePage(self.driver).assert_true( BasePage(self.driver).is_element_present( PersonalPage(self.driver)._saas_link)) BasePage(self.driver).check_exist_in_string('我的', self.driver.title)
def test_create_order_info_check(self, product_name, num): ''' 提交订单页面元素检查 ''' print('**从商品详情页,点击立即购买,验证是否跳转到提交订单页**') HomePage(self.driver).click_search_box() SearchPage(self.driver).send_key_search_box(product_name) SearchPage(self.driver).click_search_product_01() ProductPage(self.driver).product_buy(num) sleep(2) BasePage(self.driver).assert_true(BasePage(self.driver).is_element_present(CreateOrderPage(self.driver)._addr_form)) print("收货人地址栏已展示") BasePage(self.driver).assert_true(BasePage(self.driver).is_element_present(CreateOrderPage(self.driver)._product_list_form)) print("商品列表已展示") BasePage(self.driver).assert_true(BasePage(self.driver).is_element_present(CreateOrderPage(self.driver)._order_fee_form)) print("金额计算区域已展示") BasePage(self.driver).assert_true(BasePage(self.driver).is_element_present(CreateOrderPage(self.driver)._create_order_btn_form)) print("提交订单按钮栏已展示")
def test_points_link(self): PersonalPage(self.driver).click_points() BasePage(self.driver).assert_true( BasePage(self.driver).is_element_present( PointsPage(self.driver)._points_num)) BasePage(self.driver).assert_true( BasePage(self.driver).is_element_present( PointsPage(self.driver)._points_list)) BasePage(self.driver).check_exist_in_string( 'my/pointsDetail', BasePage(self.driver).get_url())
def test_create_order(self): ''' 购物车商品,选中,点击结算,跳转到提交订单页 ''' print('**从购物车列表,点击结算,验证跳转到提交订单页**') # 修改商品数量 i = 3 CartPage(self.driver).input_product_num(i, 1) sleep(5) CartPage(self.driver).click_product_select_icon_i(i) CartPage(self.driver).click_create_order_btn() sleep(3) ec.title_contains('提交订单') ec.url_contains('emall/pages/order/createOrder') res = BasePage(self.driver).is_element_present( CreateOrderPage(self)._product_list_form) if res is True: print('商品模块已展示') else: TestCase().fail('商品模块未展示')
def test_page_show(self): ''' 购物车展示元素校验 ''' print('**购物车页面元素校验**') print('**左上角的商品总数与接口进行比对**') page_total_num = CartPage(self.driver).get_cart_total_num() api_total_num = CartApi.get_cart_total_num_api(self.token) BasePage(self.driver).assert_equal(int(page_total_num), api_total_num) print('**购物车列表的商品名称和商品数量与接口进行比对**') page_product_name_list = CartPage(self.driver).get_product_name_list() page_product_num_list = CartPage(self.driver).get_product_num_text() page_product_num_list = [int(i) for i in page_product_num_list] # 全部转成int类型 page_product_info = [page_product_name_list, page_product_num_list] api_product_info_list = CartApi.get_cart_list_api(self.token) api_product_info = [] for api_product_infos in api_product_info_list: api_product_info.append(api_product_infos[1:]) api_product_info = list(map(list, zip(*api_product_info))) # 行列转换 print(page_product_info) print(api_product_info) TestCase().assertListEqual(page_product_info, api_product_info)
def click_invite_cancel(self): if BasePage(self.driver).is_element_present(self._invite_cancel): self.click_element(self._invite_cancel) else: print("没有出现输入邀请码页面")
def __init__(self, driver): BasePage.__init__(self, driver)
def input_product_num(self, i, num): BasePage(self.driver).clear_element( self.get_product_num_input_box_i(i)) self.sendkey_element(self.get_product_num_input_box_i(i), num)
def setUp(self): BasePage(self.driver).visit_url()
def setUpClass(cls): return_list = BasePage(cls).class_setup_set(True) cls.driver = return_list[0] cls.token = return_list[1]