import time from selenium.webdriver.common.by import By from Base.page import Page from Base.get_driver import get_driver # 实例化统一入口类 page_obj = Page( get_driver("com.yunmall.lc", "com.yunmall.ymctoc.ui.activity.MainActivity")) # 点击首页我 page_obj.get_home_page().click_home_my_btn() # 点击已有账户去登录 page_obj.get_sign_page().click_sign_exits_btn() # 登录操作 page_obj.get_login_page().login("13488834010", "159357li123") def get_toast(tos): # 获取消息 xpath_data = (By.XPATH, "//*[contains(@text,'%s')]" % tos) toast_text = page_obj.get_setting_page().search_element(xpath_data, timeout=3, poll_frequency=0.5) print(toast_text.text)
class Test_Login: def setup_class(self): self.driver = get_driver( "com.yunmall.lc", "com.yunmall.ymctoc.ui.activity.MainActivity") # 实例化Page类 self.page_obj = Page(self.driver) def teardown_class(self): self.driver.quit() @pytest.fixture(autouse=True) # 解决依赖条件 def in_login_page(self): # 点击我 self.page_obj.get_home_page().click_my_btn() # 点击已有账号去登录 self.page_obj.get_sign_page().click_exits_accout() @pytest.mark.parametrize("user, pwd, exp", get_login_data().get("suc")) def test_succ_login(self, user, pwd, exp): # 登录 self.page_obj.get_login_page().login(user, pwd) try: # 取我的优惠券 coupons_text = self.page_obj.get_person_page().get_coupons_text() try: assert exp == coupons_text except AssertionError: # 截图 self.page_obj.get_person_page().screen_shot(name="登录成功") assert False finally: # 点击设置按钮 self.page_obj.get_person_page().click_setting_btn() # 执行退出操作 self.page_obj.get_setting_page().logout() except TimeoutException: # 关闭登录页面 self.page_obj.get_login_page().close_login_page() assert False @pytest.mark.parametrize("user, pwd, toast, exp", get_login_data().get("fail")) def test_fail_login(self, user, pwd, toast, exp): # 登录 self.page_obj.get_login_page().login(user, pwd) # 断言 try: # 获取提示消息 toast_data = self.page_obj.get_setting_page().get_toast(toast) try: # 断言提示消息 和 登录按钮 assert toast_data == exp and self.page_obj.get_login_page( ).if_login_btn() except AssertionError: self.page_obj.get_setting_page().screen_shot(name="登录失败") assert False finally: # 关闭登录页面 self.page_obj.get_login_page().close_login_page() except TimeoutException: # 截图 self.page_obj.get_person_page().screen_shot() try: # 点击设置按钮 self.page_obj.get_person_page().click_setting_btn() # 执行退出操作 self.page_obj.get_setting_page().logout() except TimeoutException: self.page_obj.get_login_page().close_login_page()
def home_click_my_btn(self): """首页点击我 -一次""" # 首页 -点击稍后更新 Page.get_home_page().click_update_later() # 首页 -点击我的 Page.get_home_page().click_mine()
class Test_login: def setup_class(self): # 声明driver self.driver = get_driver( "com.yunmall.lc", "com.yunmall.ymctoc.ui.activity.MainActivity") # 实例化统一入口类 self.page_obj = Page(self.driver) def teardown_class(self): # 退出driver self.driver.quit() @pytest.fixture(autouse=True) def in_lobin_page(self): """每个方法执行一次""" # 点击首页我 self.page_obj.get_home_page().click_home_my_btn() # 点击注册页面已有账号去登录 self.page_obj.get_sign_page().click_sign_exits_btn() @pytest.mark.parametrize("case_num, username, passwd, exp_data", get_login_data().get("suc")) def test_suc_login(self, case_num, username, passwd, exp_data): """预期成功测试用例""" # 登录操作 self.page_obj.get_login_page().login(username, passwd) try: # 获取我的优惠券 coup = self.page_obj.get_person_page().get_coupons_text() try: assert coup == exp_data except AssertionError: # 截图 TODO self.page_obj.get_login_page().screen_png() # 显示断言失败 assert False finally: # 点击个人中心设置按钮 self.page_obj.get_person_page().click_setting_btn() # 设置页面执行退出操作 self.page_obj.get_setting_page().logout('y') except TimeoutException: # 截图 TODO self.page_obj.get_login_page().screen_png() """新功能的增加不会选择更改老功能元素属性""" # try: # # 执行退出操作 # self.page_obj.get_person_page().click_setting_btn() # self.page_obj.get_setting_page().logout('y') # # except TimeoutException: # # 关闭登录页面--页面还停留在登录页 # self.page_obj.get_login_page().close_login_page() # 关闭登录页面--页面还停留在登录页 self.page_obj.get_login_page().close_login_page() # 显示断言失败 assert False @pytest.mark.parametrize("case_num, username, passwd, toast_mes, exp_data", get_login_data().get("fail")) def test_fail_login(self, case_num, username, passwd, toast_mes, exp_data): """预期失败测试用例""" # 登录操作 self.page_obj.get_login_page().login(username, passwd) try: # 获取toast消息 message = self.page_obj.get_setting_page().get_toast(toast_mes) try: # 断言 assert message == exp_data and self.page_obj.get_login_page( ).is_login_btn() except TimeoutException: # 截图 TODO self.page_obj.get_login_page().screen_png() assert False finally: # 关闭登录页面 self.page_obj.get_login_page().close_login_page() except TimeoutException: # 截图 TODO self.page_obj.get_login_page().screen_png() try: # 找我的优惠券 ---作为个人中心退出操作 self.page_obj.get_person_page().get_coupons_text() # 点击设置 self.page_obj.get_person_page().click_setting_btn() # 执行退出 self.page_obj.get_setting_page().logout('y') except TimeoutException: # 关闭登录页面 self.page_obj.get_login_page().close_login_page() assert False
from Base.driver import Driver from Base.page import Page from selenium.common.exceptions import TimeoutException # 首页 -稍后更新 Page.get_home_page().click_update_later() # 首页 -点击我的 Page.get_home_page().click_mine() # 个人中心 -登录/注册 Page.get_person_page().click_login_sign_btn() # 登录页面 -登录 Page.get_login_page().login('13048122192', 'Qq123456') # 登录页面 -登录确认 Page.get_login_page().click_login_success_btn() # 个人中心 -获取用户名 print(Page.get_person_page().get_user_name()) # 个人中心 -点击设置 Page.get_person_page().click_setting_btn() # 设置页面 -确认退出 Page.get_setting_page().logout() # 退出driver Driver.quit_app_driver()