def setUp(cls):
     """启动应用"""
     cls.home = HomePage()
     cls.login = LoginPage()
     cls.account = AccountPage()
     cls.login.app_status()  # 判断APP当前状态
     cls.home.click_sub()  # 进入公众号
示例#2
0
 def setUp(cls):
     """启动应用"""
     cls.home = HomePage()
     cls.login = LoginPage()
     cls.order = OrderPage()
     cls.login.app_status()  # 判断APP当前状态
     cls.home.click_sub()  # 进入公众号
示例#3
0
 def get_info(self):
     """获取我的账号页面信息  手机号、备注等"""
     content = []
     HomePage().account_tab()  # 账号管理 tab
     self.mine_account()  # 进入 我的账号
     time.sleep(5)
     if self.wait_check_account_page():  # 页面检查点
         if not HomePage().wait_check_button():
             LoginPage().clear_tbs_to_retry()
             HomePage().account_tab()  # 账号管理 tab
             self.mine_account()  # 进入 我的账号
         content = self.account_all_ele()  # 所有元素
         HomePage().back_to_club_home()  # 返回主界面
         return content[1], content[5], content[
             3],  # content[3]=手机号 [5]=备注名 [1]=昵称
     else:
         print("未定位到我的账号检查点")
         return content
示例#4
0
    def logout_operate(self):
        """退出登录"""
        ele = HomePage().get_text1()
        if ele == "我的账号":  # 我的账号 页面检查点
            print("已在 '我的账号' 页面,退出登录。")
        else:
            HomePage().back_to_club_home()  # 点击关闭按钮
            HomePage().account_tab()  # 点击底部菜单 - 我的账号
            self.mine_account()  # 点击二级标题 我的账号
            if self.wait_check_account_page():
                ele = HomePage().get_text1()
                if ele == "我的账号":  # 我的账号 页面检查点
                    print("进入 '我的账号' 页面:")
                else:
                    print('★★★ Error - 未进入我的账号 页面')

        self.logout_button()  # 退出登录 按钮
        if self.wait_check_logout_page():  # 退出登录确认弹框 检查点
            self.confirm_button()  # 确定按钮
示例#5
0
    def login_operate_phone(self):
        """ 测试手机号"""
        for i in range(0, len(phone_data)):

            if self.home.wait_check_login_page():
                phone = self.home.ele_input_text()[0]
                pwd = self.home.ele_input_text()[1]

                phone.click()  # 激活phone输入框
                phone.send_keys(phone_data[i]['username'])  # 输入手机号

                pwd.click()  # 激活pwd输入框
                # self.home.show_password()
                pwd.send_keys(phone_data[i]['password'])  # 输入密码

                try:
                    assert_text = phone_data[i]['assert']
                except:
                    assert_text = ''

                self.home.login_button()
                self.login.check_login_error_info(assert_text)  #检查toast

                if self.home.wait_check_login_page():
                    print('登录失败', phone_data[i]['username'])
                    self.home.back_to_club_home()  # 点击关闭按钮
                    if HomePage().wait_check_parent_title():
                        if i == 0:
                            self.home.report_tab()  # 点击底部菜单 - 学习报告
                            self.report.study_month_report()  # 点击二级标题 学习月报
                        elif i in (1, 3):
                            self.home.report_tab()  # 点击底部菜单 - 学习报告
                            self.report.study_week_report()  # 点击二级标题 学习周报

                        elif i == 4:
                            self.home.buy_tab()  # 点击底部菜单 - 购买
                        elif i == 5:
                            self.home.account_tab()  # 点击底部菜单 - 账号管理
                            self.order.mine_order()  # 点击二级标题 我的订单
                        else:
                            self.home.account_tab()  # 点击底部菜单 - 账号管理
                            self.account.mine_account()  # 点击二级标题 我的账号
                else:
                    print('登录成功:', phone_data[i]['username'])
                    self.account.logout_operate()  # 退出登录
            else:
                print('已登录')
                self.account.logout_operate()  #退出登录
            print('----------------------------------')
示例#6
0
 def __init__(self):
     self.home = HomePage()
     self.toast = Toast()
示例#7
0
class LoginPage(BasePage):
    """登录界面"""

    @teststeps
    def __init__(self):
        self.home = HomePage()
        self.toast = Toast()
    @teststeps

    def wait_check_wx(self):
        """以微信主界面“tab:微信”的text为依据"""
        try:
            main_ele = (By.XPATH, "//android.widget.TextView[contains(@text,'微信')]")
            WebDriverWait(self.driver, 15, 0.5).until(EC.presence_of_element_located(main_ele))
            return True
        except :
            return False

    @teststeps
    def wait_check_test1(self):
        """以微信主界面“tab:微信”的text为依据"""
        try:
            main_ele = (By.XPATH, "//android.widget.TextView[contains(@text,'测试1')]")
            WebDriverWait(self.driver, 15, 0.5).until(EC.presence_of_element_located(main_ele))
            return True
        except:
            return False

    @teststeps
    def wait_check_tbs(self):
        """以tbs页面 标题作为检查点"""
        try:
            tbs_title = (By.XPATH, "//android.widget.TextView[contains(@text,'tbs调试页面')]")
            WebDriverWait(self.driver, 15, 0.5).until(EC.presence_of_element_located(tbs_title))
            return True
        except:
            return False

    @teststeps
    def wait_check_delete_x5core(self):
        """删除内核弹框检查"""
        try:
            tbs_title = (By.XPATH, "//android.widget.TextView[contains(@text,'删除内核')]")
            WebDriverWait(self.driver, 15, 0.5).until(EC.presence_of_element_located(tbs_title))
            return True
        except:
            return False

    @teststeps
    def wait_check_find_exp(self):
        """搜索页面检查"""
        try:
            tbs_title = (By.ID, "com.tencent.mm:id/ht")
            WebDriverWait(self.driver, 15, 0.5).until(EC.presence_of_element_located(tbs_title))
            return True
        except:
            return False

    @teststep
    def launch_app(self):
        """Start on the device the application specified in the desired capabilities.
        """
        os.system ("adb shell am start -n com.tencent.mm/com.tencent.mm.ui.LauncherUI/")
        time.sleep (5)

    @teststep
    def close_app(self):
        """Close on the device the application specified in the desired capabilities.
        """
        os.system ('adb shell am force-stop com.tencent.mm')

    @teststeps
    def app_status(self):
        """判断应用当前状态"""

        if self.wait_check_wx():  # 在 微信 界面
            print('微信主界面:')
            # self.clear_tbs()
        elif self.home.wait_check_parent_title():  # 家长端 主界面

            print('家长端 主界面:')
        else:
            print('其他情况:')
            self.close_app()
            self.launch_app()
            if self.wait_check_wx():  # 在 微信 主界面
                print('微信主界面:')

    @teststep
    def chat_test1_click(self):
        """点击置顶好友test1"""
        self.driver.find_elements_by_id ("com.tencent.mm:id/np")[0].click()

    @teststep
    def tbs_link_click(self):
        """点击test1发送的tbs链接"""
        self.driver.find_element_by_id ("com.tencent.mm:id/lz").click ()

    @teststep
    def click_clear_tbs_btn(self):
        """点击清除tbs内核选项"""
        self.driver.find_element_by_xpath ("//android.widget.TextView[contains(@text,'清除TBS内核')]").click()

    @teststep
    def confirm_delete(self):
        """确认清除"""
        self.driver.find_element_by_id ("android:id/button1").click()
        time.sleep (2)

    @teststep
    def back_to_test1(self):
        """点击返回按钮(X) 返回到聊天框"""
        self.driver.find_element_by_id ("com.tencent.mm:id/j7").click()

    @teststep
    def back_to_wx_home(self):
        self.driver.find_element_by_id ("com.tencent.mm:id/iz").click()

    @teststep
    def clear_tbs(self):
        """进入清除内核页面,并返回主页面"""
        self.chat_test1_click()
        if self.wait_check_test1():
            self.tbs_link_click()      #点击链接
            if self.wait_check_tbs():
                self.click_clear_tbs_btn()  #点击清除tbs
                if self.wait_check_delete_x5core():
                    self.confirm_delete()   #确认清除
                    self.back_to_test1()   # 退出tbs页面
                    if self.wait_check_test1():
                        self.back_to_wx_home() #退出聊天页面
                        if self.wait_check_wx():
                            print("已清除TBS内核\n")

    @teststeps
    def clear_tbs_to_retry(self):
        """内核清除"""
        if "QQ浏览器X5内核提供技术支持" in self.home.driver.page_source:
            print("X5内核已恢复,需重新清除TBS")
            self.home.back_to_club_home()  # 返回
            if self.home.wait_check_parent_title():  # 在线助教家长公众号主界面检查
                self.home.back_to_find()  # 退出公众号
                self.home.back_to_wx_home()  # 退出搜搜页面
                self.clear_tbs()  # 清除内核
                self.home.click_sub()  # 重新进入公众号
        else:
            print("X5内核未恢复,但依然未发现元素")
            self.home.back_to_club_home()

    @teststeps
    def check_login_error_info(self, toast_info):
        """检查登录toast信息"""
        if toast_info == '':
            pass

        elif self.toast.find_toast_by_xpath(toast_info):
            print(toast_info)
        else:
            print("未发现错误提示信息",toast_info)
示例#8
0
 def __init__(self):
     self.home = HomePage()