Пример #1
0
 def __init__(self, driver):
     self.get_by_local = GetByLocal(driver)
     self.read_ini = ReadIni()
Пример #2
0
class ActionMethod:
    '''
	封装selenium操作函数
	'''
    def __init__(self):
        base_driver = Base_Driver()
        self.driver = base_driver.get_driver()
        self.get_element_local = GetByLocal()
        get_size = self.get_size()

    def input(self, row, value):
        '''
        封装操作动作s
        '''
        element = self.get_element_local.get_local_path(row)
        if element == None:
            return logging.info('元素没找到')
        element.send_keys(value)
        logging.info('输入' + value)

    def on_click(self):
        '''
        封装点击操作
        :return:
        '''
        element = self.get_element_local.get_element()
        if element == None:
            return logging.info('元素没找到')
        element.click()
        logging.info('点击元素' + element)

    def swipe_left(self):
        '''
        封装滑动操作
        :param self:
        :return:
        '''
        x1 = self.get_size()[0] / 10 * 9
        y1 = self.get_size()[1] / 2
        x = self.get_size()[0] / 10
        # swipe有4个左边参数,数值2000表示坐标移动的时间
        self.driver.swipe(x1, y1, x, y1, 2000)
        logging.info('向左滑动')

    def swipe_rigth(self):
        '''
        封装滑动操作
        :param self:
        :return:
        '''
        x1 = self.get_size()[0] / 10
        y1 = self.get_size()[1] / 2
        x = self.get_size()[0] / 10 * 9
        # swipe有4个左边参数,数值2000表示坐标移动的时间
        self.driver.swipe(x1, y1, x, y1, 2000)
        logging.info('向右滑动')

    def swipe_up(self):
        '''
        封装滑动操作
        :param self:
        :return:
        '''
        x = self.get_size()[0] / 2
        y1 = self.get_size()[1] / 10 * 6
        y = self.get_size()[1] / 10 * 2
        # swipe有4个左边参数,数值2000表示坐标移动的时间
        self.driver.swipe(x, y1, x, y, 2000)
        logging.info('向上滑动')

    def swipe_down(self):
        '''
        封装滑动操作
        :param self:
        :return:
        '''
        x = self.get_size()[0] / 2
        y1 = self.get_size()[1] / 10
        y = self.get_size()[1] / 10 * 9
        # swipe有4个左边参数,数值2000表示坐标移动的时间
        self.driver.swipe(x, y1, x, y, 2000)
        logging.info('向下滑动')

    def get_size(self):
        x = self.driver.get_window_size()['width']
        y = self.driver.get_window_size()['heigth']
        return x, y,

    def sleep_time(self, t):
        time.sleep(t)
        logging.info('等待')
Пример #3
0
 def __init__(self, driver):
     self.driver = driver
     self.base_page = BasePage(self.driver)
     # self.driver = self.base_page.driver
     self.get_by_local = GetByLocal(self.driver)
Пример #4
0
 def __init__(self):
     base_driver = BaseDriver()
     self.driver = base_driver.android_driver(0)
     self.get_by_local = GetByLocal(self.driver)
Пример #5
0
 def __init__(self, driver):
     self.driver = driver
     self.getByLocal = GetByLocal(self.driver)
class RegistratonPage(object):
    def __init__(self, driver):
        self.driver = driver
        self.get_by_local = GetByLocal(self.driver)

    def get_resgistration_title(self):
        """
		获取注册页面title
		"""
        return self.get_by_local.get_element("resgistration_title",
                                             "registration_element")

    def get_resgistration_cancel(self):
        """
		获取右上角取消按钮
		"""
        return self.get_by_local.get_element("registration_cancel",
                                             "registration_element")

    def get_validation_mobile(self):
        """
		获取验证手机号元素
		"""
        return self.get_by_local.get_element("validation_mobile",
                                             "registration_element")

    def get_input_validation_mobile(self):
        """
		获取输入手机号码框元素
		"""
        return self.get_by_local.get_element("input_validation_mobile",
                                             "registration_element")

    def get_input_mobile_verification_code(self):
        """
		获取验证码输入框元素
		"""
        return self.get_by_local.get_element("input_mobile_verification_code",
                                             "registration_element")

    def get_sms_verification_code(self):
        """
		获取短信验证码按钮元素
		"""
        return self.get_by_local.get_element("sms_verification_code",
                                             "registration_element")

    def get_agree_deal(self):
        """
		获取勾选协议元素
		"""
        return self.get_by_local.get_element("agree_deal",
                                             "registration_element")

    def get_submit_validation(self):
        """
		获取提交验证码按钮
		"""
        return self.get_by_local.get_element("submit_validation",
                                             "registration_element")

    def get_setting_password_text(self):
        """
		获取设置密码文案元素
		"""
        return self.get_by_local.get_element("setting_password_text",
                                             "registration_element")

    def get_setting_password_input(self):
        """
		获取登录密码输入框元素
		"""
        return self.get_by_local.get_element("setting_password_input",
                                             "registration_element")

    def get_recommended_id(self):
        """
		获取推荐人id元素
		"""
        return self.get_by_local.get_element("recommended_id",
                                             "registration_element")

    def get_commit_setting_succese(self):
        """
		获取完成设置按钮元素
		"""
        return self.get_by_local.get_element("commit_setting_succese",
                                             "registration_element")

    def get_resgistration_success(self):
        """
		获取注册完成元素
		"""
        return self.get_by_local.get_element("resgistration_success",
                                             "registration_element")

    def get_resgistration_success_text(self):
        """
		获取注册完成文案元素
		"""
        return self.get_by_local.get_element("resgistration_success_text",
                                             "registration_element")

    def get_continue_real_name_authentication(self):
        """
		获取继续完成实名认证元素
		"""
        return self.get_by_local.get_element(
            "continue_real_name_authentication", "registration_element")

    def get_to_go_first(self):
        """
		获取先逛一逛元素
		"""
        return self.get_by_local.get_element("to_go_first",
                                             "registration_element")

    def get_website_service_agreement(self):
        """
		获取网站服务协议元素
		"""
        return self.get_by_local.get_element("website_service_agreement",
                                             "registration_element")

    def get_risk_note(self):
        """
		获取风险提示书
		"""
        return self.get_by_local.get_element("risk_note",
                                             "registration_element")

    def get_registration_return(self):
        """
		获取返回元素
		"""
        return self.get_by_local.get_element("registration_return",
                                             "registration_element")
Пример #7
0
 def __init__(self, i):
     base_driver = BaseDriver(i)
     # self.driver = base_driver.Android_driver()
     self.driver = base_driver.Ios_driver()
     self.get_by_local = GetByLocal(self.driver)
Пример #8
0
class ActionMethod:
    def __init__(self):
        basedriver = BaseDrvier()
        self.driver = basedriver.android_driver(0)
        self.get_by_local = GetByLocal(self.driver)

    def input(self, *args):
        '''
        输入值
        :param element_key:
        :param value:
        :return:
        '''
        element = self.get_by_local.get_element(args[0])
        if element == None:
            return args[0], "元素没找到"
        element.send_keys(args[1])

    def on_click(self, *args):
        '''
        元素点击
        :param element_key:
        :return:
        '''
        if args[0] == None:
            return False
        else:
            element = self.get_by_local.get_element(args[0])
            if element == None:
                return args[0], "元素没找到"
            element.click()

    def sleep_time(self, *args):

        time.sleep(int(args[0]))

    def get_size(self, *args):

        size = self.driver.get_window_size()
        width = size['width']
        height = size['height']
        return width, height

    def swipe_left(self, *args):
        x1 = self.get_size()[0] / 10 * 9
        y1 = self.get_size()[1] / 2
        x = self.get_size()[0] / 10
        self.driver.swipe(x1, y1, x, y1)

    # 向右滑动
    def swipe_right(self, *args):
        x1 = self.get_size()[0] / 10
        y1 = self.get_size()[1] / 2
        x = self.get_size()[0] / 10 * 9
        self.driver.swipe(x1, y1, x, y1)

    # 向上滑动
    def swipe_up(self, *args):
        print('开始执行向上滑动的方法')
        x1 = self.get_size()[0] / 2
        y1 = self.get_size()[1] / 10 * 6
        y = self.get_size()[1] / 10 * 2
        self.driver.swipe(x1, y1, x1, y, 1000)

    # 向下滑动
    def swipe_down(self, *args):
        x1 = self.get_size()[0] / 2
        y1 = self.get_size()[1] / 10
        y = self.get_size()[1] / 10 * 9
        self.driver.swipe(x1, y1, x1, y)

    def swipe_on(self, direction):
        if direction == 'up':
            self.swipe_up()
        elif direction == 'down':
            self.swipe_down()
        elif direction == 'left':
            self.swipe_left()
        else:
            self.swipe_right()

    def get_element(self, *args):
        element = self.get_by_local.get_element(args[0])
        if element == '':
            return None
        return element

    def get_toast(self, *args):
        '''
        获取toast用来断言
        :return:
        '''
        print('获取到toast的预期元素-------', args[0])

        toast_element = ("xpath", "//*[contains(@text,'%s')]" % args[0])
        self.getImage()
        return WebDriverWait(self.driver, 10, 0.1).until(
            EC.presence_of_all_elements_located(toast_element))

    def getImage(self):
        '''
        截取图片,并保存在images文件夹
        :return: 无
        '''
        timestrmap = time.strftime('%Y%m%d_%H.%M.%S')
        imgPath = os.path.join('../report/', '%s.png' % str(timestrmap))
        print('this is imgPath:-----', imgPath)
        self.driver.save_screenshot(imgPath)
        print('screenshot:', timestrmap, '.png')
Пример #9
0
 def __init__(self):
     self.driver = MessageDriver().get_android_driver()
     self.get_by_local = GetByLocal(self.driver)
Пример #10
0
class ManualPage(BasePage):
    '''获取手动归集页面元素'''
    def __init__(self, driver):
        self.driver = driver
        self.getByLocal = GetByLocal(self.driver)

    def get_manualAdd_element(self):
        """获取手动新增按钮"""
        return self.getByLocal.get_element('manual_element', 'manualAdd')

    def get_manualCheck_element(self):
        """获取手动查验按钮"""
        return self.getByLocal.get_element('manual_element', 'manualCheck')

    def get_inputCode_element(self):
        """获取发票代码输入框"""
        return self.getByLocal.get_element('manual_element', 'inputCode')

    def get_inputNumber_element(self):
        """获取发票号码输入框"""
        return self.getByLocal.get_element('manual_element', 'inputNumber')

    def get_inputCheckCode_element(self):
        """获取发票校验码输入框"""
        return self.getByLocal.get_element('manual_element', 'inputCheckCode')

    def get_inputNonTaxPrice_element(self):
        """获取不含税价输入框"""
        return self.getByLocal.get_element('manual_element',
                                           'inputNonTaxPrice')

    def get_inputInvoiceDate_element(self):
        """获取开票日期输入框"""
        return self.getByLocal.get_element('manual_element',
                                           'inputInvoiceDate')

    def get_determine_element(self):
        """获取确定按钮"""
        return self.getByLocal.get_element('manual_element', 'determine')

    def get_dateEidex_element(self):
        """获取增票日期控件选择框(年月日)"""
        return self.getByLocal.get_element('manual_element', 'dateEidex')

    def get_trainTicket_element(self):
        """获取火车票按钮"""
        return self.getByLocal.get_element('manual_element', 'trainTicket')

    def get_taxiTicket_element(self):
        """获取打车票按钮"""
        return self.getByLocal.get_element('manual_element', 'taxiTicket')

    def get_trainNum_element(self):
        """获取车次输入框"""
        return self.getByLocal.get_element('manual_element', 'trainNum')

    def get_trainDate_element(self):
        """获取车票日期输入框"""
        return self.getByLocal.get_element('manual_element', 'trainDate')

    def get_startStation_element(self):
        """获取始发站输入框"""
        return self.getByLocal.get_element('manual_element', 'startStation')

    def get_endStation_element(self):
        """获取终点站输入框"""
        return self.getByLocal.get_element('manual_element', 'endStation')

    def get_trainMoney_element(self):
        """获取车票金额输入框"""
        return self.getByLocal.get_element('manual_element', 'trainMoney')

    def get_trainName_element(self):
        """获取车票姓名输入框"""
        return self.getByLocal.get_element('manual_element', 'trainName')

    def get_checkButton_element(self):
        """获取查验按钮"""
        return self.getByLocal.get_element('manual_element', 'checkButton')

    def back(self):
        """返回"""
        self.driver.back()
Пример #11
0
 def get_element(self, id):
     # 实例化对象
     get_by_element = GetByLocal(self.driver)
     element = get_by_element.get_local_element(id)
     return element
 def __init__(self, i):
     base_driver = BaseDriver()
     self.driver = base_driver.android_driver(i)
     self.get_by_local = GetByLocal(self.driver)
     self.base_web_obj = GetWeb()  # 获取web端的公共类
Пример #13
0
 def __init__(self):
     base_driver = Base_Driver()
     self.driver = base_driver.get_driver()
     self.get_element_local = GetByLocal()
     get_size = self.get_size()
Пример #14
0
 def __init__(self, i):
     self.driver = self.android_driver(i)
     self.gbl = GetByLocal(self.driver)
     self.page = 'LoginPage'
 def __init__(self, *args):
     self.type = args[0]
     self.get_by_local = GetByLocal()
     # args[2]表示读哪个sheet,int类型
     # args[1]表示测试Excel名称,类似../config/name.xls
     self.data = GetData(args[1], args[2])
Пример #16
0
def login_page():
    get_by_local = GetByLocal(driver)
    get_by_local.get_element('username1').send_keys('13439075603')
    get_by_local.get_element('password').send_keys('1qaz2wsx')
    get_by_local.get_element('login_button').click()
Пример #17
0
class MinePage:
    """获取我的模块所有的页面元素信息"""
    def __init__(self, driver):
        self.get_by_local = GetByLocal(driver)
        self.read_ini = ReadIni()

    def wait_element(self, section, option):
        """元素等待&获取元素信息"""
        global value
        start_t = time.time()
        try:
            value = self.read_ini.get_value(section, option)
            self.get_by_local.element_wait(section, option)
            el = self.get_by_local.get_element(section, option)
            logger.info("{0} Get element: <{1}>, Spend {2} seconds".format(
                success, value, round(time.time() - start_t, 2)))
            return value, el
        except Exception:
            logger.info(
                "{0} Unable to get element <{1}>, Spend {2} seconds".format(
                    fail, value, round(time.time() - start_t, 2)))
            raise

    def get_mine_tab_element(self):
        """获取我的tab元素信息"""
        return self.wait_element('mine_element', 'mine_tab')

    def get_user_image_element(self):
        """获取头像元素信息"""
        return self.wait_element('mine_element', 'user_image')

    def get_user_name_element(self):
        """获取用户名元素信息"""
        return self.wait_element('mine_element', 'user_name')

    def get_login_title_element(self):
        """获取登录标题元素信息"""
        return self.wait_element('mine_element', 'login_title')

    def get_friend_btn_element(self):
        """获取好友元素信息"""
        return self.wait_element('mine_element', 'friend_btn')

    def get_collect_btn_element(self):
        """获取收藏元素信息"""
        return self.wait_element('mine_element', 'collect_btn')

    def get_collect_count_element(self):
        """获取收藏数元素信息"""
        return self.wait_element('mine_element', 'collect_count')

    def get_notice_btn_element(self):
        """获取消息元素信息"""
        return self.wait_element('mine_element', 'notice_btn')

    def get_sign_btn_element(self):
        """获取签到元素信息"""
        return self.wait_element('mine_element', 'sign_btn')

    def get_onePrice_btn_element(self):
        """获取一元购课元素信息"""
        return self.wait_element('mine_element', 'onePrice_btn')

    def get_myCourse_btn_element(self):
        """获取我的课程元素信息"""
        return self.wait_element('mine_element', 'myCourse_btn')

    def get_inviteReward_btn_element(self):
        """获取邀请奖励元素信息"""
        return self.wait_element('mine_element', 'inviteReward_btn')

    def get_welfare_btn_element(self):
        """获取福利中心元素信息"""
        return self.wait_element('mine_element', 'welfare_btn')

    def get_ad_btn_element(self):
        """获取广告元素信息"""
        return self.wait_element('mine_element', 'ad_btn')

    def get_childInfo_btn_element(self):
        """获取孩子档案元素信息"""
        return self.wait_element('mine_element', 'childInfo_btn')

    def get_childInfoIntroduce_element(self):
        """获取孩子档案介绍元素信息"""
        return self.wait_element('mine_element', 'childInfoIntroduce')

    def get_showcaseView_btn_element(self):
        """获取我的发表元素信息"""
        return self.wait_element('mine_element', 'showcaseView_btn')

    def get_courseOrder_btn_element(self):
        """获取课程订单元素信息"""
        return self.wait_element('mine_element', 'courseOrder_btn')

    def get_orderIntroduce_element(self):
        """获取课程订单介绍元素信息"""
        return self.wait_element('mine_element', 'orderIntroduce')

    def get_growthRecord_btn_element(self):
        """获取成长记录元素信息"""
        return self.wait_element('mine_element', 'growthRecord_btn')

    def get_growthRecordNewFlag_element(self):
        """获取成长记录NEW元素信息"""
        return self.wait_element('mine_element', 'growthRecordNewFlag')

    def get_growthRecordIntroduce_element(self):
        """获取成长记录介绍元素信息"""
        return self.wait_element('mine_element', 'growthRecordIntroduce')

    def get_browseHistory_btn_element(self):
        """获取浏览记录元素信息"""
        return self.wait_element('mine_element', 'browseHistory_btn')

    def get_historyPush_btn_element(self):
        """获取历史推送元素信息"""
        return self.wait_element('mine_element', 'historyPush_btn')

    def get_historyPushIntroduce_element(self):
        """获取历史推送介绍元素信息"""
        return self.wait_element('mine_element', 'historyPushIntroduce')

    def get_help_feedback_btn_element(self):
        """获取帮助与反馈元素信息"""
        return self.wait_element('mine_element', 'help_feedback_btn')

    def get_setting_btn_element(self):
        """获取设置元素信息"""
        return self.wait_element('mine_element', 'setting_btn')

    # ----------------------------------------------------------------------

    def get_updatePersonal_element(self):
        """获取用户资料页修改资料元素信息"""
        return self.wait_element('secLevel_element', 'update_personal')

    def get_userName_element(self):
        """获取用户资料页用户名元素信息"""
        return self.wait_element('secLevel_element', 'user_name')

    def get_threadName_element(self):
        """获取用户资料页流文案元素信息"""
        return self.wait_element('secLevel_element', 'thread_name')

    def get_friend_title_element(self):
        """获取好友页标题元素信息"""
        return self.wait_element('secLevel_element', 'friend_title')

    def get_recommend_friend_element(self):
        """获取好友页推荐好友元素信息"""
        return self.wait_element('secLevel_element', 'recommend_friend')

    def get_agency_element(self):
        """获取好友页机构元素信息"""
        return self.wait_element('secLevel_element', 'agency')

    def get_collect_time_element(self):
        """获取收藏页标题元素信息"""
        return self.wait_element('secLevel_element', 'collect_time')

    def get_collect_title_element(self):
        """获取收藏页时间元素信息"""
        return self.wait_element('secLevel_element', 'collect_title')

    def get_notice_sendLetter_element(self):
        """获取消息页发信元素信息"""
        return self.wait_element('secLevel_element', 'notice_send_letter')

    def get_notice_bang_element(self):
        """获取消息页帮通知元素信息"""
        return self.wait_element('secLevel_element', 'notice_bang')

    def get_notice_1_element(self):
        """获取消息页通知元素信息"""
        return self.wait_element('secLevel_element', 'notice_1')
Пример #18
0
 def __init__(self):
     self.driver = Base_Driver().get_driver()
     self.get_by_local = GetByLocal(self.driver)
class LoginPage(object):
    #获取登录页面所有的页面元素信息
    def __init__(self, driver):
        self.driver = driver
        self.get_by_local = GetByLocal(self.driver)
        '''
        base_driver = BaseDriver()
        self.driver = base_driver.android_driver(i)
        self.get_by_local = GetByLocal(self.driver)
        '''

    def get_launch_page_element(self):
        """
        获取启动页面的轮播图
        """
        return self.get_by_local.get_element("launch_page",
                                             "launch_page_element")

    def get_login_title_element(self):
        """
        获取登录title页面元素
        """
        return self.get_by_local.get_element("mobile_login", "login_element")

    def get_login_bounced(self):
        """
        登录后出现弹窗
        """
        return self.get_by_local.get_element("login_bounced", "login_element")

    def get_login_right_element(self):
        """
        获取右上角取消按钮
        """
        return self.get_by_local.get_element("cancel", "login_element")

    def get_uernsme_element(self):
        """
        获取手机及用户名登录元素信息
        """
        return self.get_by_local.get_element("mobile_login", "login_element")

    def get_password_element(self):
        """
        获取登录密码元素信息
        """
        return self.get_by_local.get_element("mobile_login_password",
                                             "login_element")

    def get_login_button_element(self):
        """
        获取登录按钮元素信息
        """
        return self.get_by_local.get_element("login_buttion", "login_element")

    def get_forgot_password_element(self):
        """
        获取忘记登录密码元素信息
        """
        return self.get_by_local.get_element("forgot_password",
                                             "login_element")

    def get_normal_login_element(self):
        """
        普通登录元素
        """
        return self.get_by_local.get_element("normal_login", "login_element")

    def get_free_registration_element(self):
        """
        免费注册元素
        """
        return self.get_by_local.get_element("free_registration",
                                             "login_element")

    def get_cancel_element(self):
        """
        取消按钮元素信息
        """
        return self.get_by_local.get_element("cancel", "login_element")

    def get_account_element(self):
        """
        获取账户按钮元素信息
        """
        return self.get_by_local.get_element("account", "login_element")

    def get_toast_element(self, message):
        """
        获取toast元素信息,5.0以上手机可用
        """
        time.sleep(2)
        toast_element = ("xpath", "//*[contains(@text,'+message+')]")
        return WebDriverWait(self.driver, 10, 0.1).until(
            EC.presence_of_element_located(toast_element))

    def get_gestures_password(self):
        """
        获取手势密码框元素
        """
        return self.get_by_local.get_element("gestures_password",
                                             "login_element")

    def get_set_new_password(self):
        """
        设置新手手势密码
        """
        return self.get_by_local.get_element("set_new_password",
                                             "login_element")

    def get_confirm_new_password(self):
        """
        确认手势密码
        """
        return self.get_by_local.get_element("confirm_new_password",
                                             "login_element")

    def get_two_password_mismatch(self):
        """
        两次密码不一致
        """
        return self.get_by_local.get_element("two_password_mismatch",
                                             "login_element")

    def get_forget_gesture_password(self):
        """
        忘记手势密码
        """
        return self.get_by_local.get_element("forget_gesture_password",
                                             "login_element")
Пример #20
0
 def __init__(self, i):
     base_driver = BaseDriver()
     self.driver = base_driver.android_driver(i)
     self.get_by_local = GetByLocal(self.driver)
     self.app_start_swipe = AppStartSwipe(self.driver)
Пример #21
0
class ActionMethod:
    def __init__(self):
        base_driver = BaseDriver()
        self.driver = base_driver.android_driver(0)
        self.get_by_local = GetByLocal(self.driver)

    def input(self, *args):
        '''
        输入值
        '''
        # key,value
        element = self.get_by_local.get_element(args[0])
        if element == None:
            return args[0], "元素没找到"
        element.send_keys(args[1])

    def on_click(self, *args):
        '''
        元素点击
        '''
        element = self.get_by_local.get_element(args[0])
        if element == None:
            return args[0], "元素没找到"
        element.click()

    def sleep_time(self, *args):
        time.sleep(int(args[0]))

    # 获取屏幕的宽高
    def get_size(self, *args):
        size = self.driver.get_window_size()
        width = size['width']
        height = size['height']
        return width, height

    # 向左边滑动
    def swipe_left(self, *args):
        #[100,200]
        x1 = self.get_size()[0] / 10 * 9
        y1 = self.get_size()[1] / 2
        x = self.get_size()[0] / 10
        self.driver.swipe(x1, y1, x, y1, 2000)

    # 向右边滑动
    def swipe_right(self, *args):
        #[100,200]
        x1 = self.get_size()[0] / 10
        y1 = self.get_size()[1] / 2
        x = self.get_size()[0] / 10 * 9
        self.driver.swipe(x1, y1, x, y1, 2000)

    # 向上滑动
    def swipe_up(self, *args):
        #[100,200]direction
        x1 = self.get_size()[0] / 2
        y1 = self.get_size()[1] / 10 * 6
        y = self.get_size()[1] / 10 * 2
        self.driver.swipe(x1, y1, x1, y, 1000)

    # 向下滑动
    def swipe_down(self, *args):
        #[100,200]
        x1 = self.get_size()[0] / 2
        y1 = self.get_size()[1] / 10
        y = self.get_size()[1] / 10 * 9
        self.driver.swipe(x1, y1, x1, y)

    def get_element(self, *args):
        element = self.get_by_local.get_element(args[0])
        if element == None:
            return None
        return element

    def get_tost_element(self, *args):
        '''
        获取tostelement
        '''
        time.sleep(2)
        tost_element = ("xpath", "//*[contains(@text," + args[0] + ")]")
        return WebDriverWait(self.driver, 10, 0.1).until(
            EC.presence_of_element_located(tost_element))
Пример #22
0
 def __init__(self, driver):
     self.get_by_local = GetByLocal(driver)
     self.mine_handle = MineHandle(driver)
     self.mine_page = MinePage(driver)
Пример #23
0
class BasePage:
    def __init__(self):
        self.driver = DriverUtil.get_driver()
        self.my_local = GetByLocal(self.driver)
        self.custom_name = My_Custom_Name()

    '''
    获取toast元素信息
    '''
    def get_toast(self, message, timeout, poll_frequency):
        try:
            toast_element = ("xpath", "//*[contains(@text, " + "'" + message + "'" + ")]")
            toast = WebDriverWait(self.driver, timeout, poll_frequency)\
                .until( EC.presence_of_all_elements_located(toast_element))
            print('获取到了toast:',toast[0].text)
            return True
        except Exception as e:
            # print('Exception message',e)
            return False


    '''
    获取自定义房间中的设备名称(如:欧标插座)
    '''
    def get_custom_element(self, message, timeout, poll_frequency):
        try:
            custom_element = ("xpath", "//*[contains(@text, " + "'" + message + "'" + ")]")
            WebDriverWait(self.driver, timeout, poll_frequency)\
                .until(EC.presence_of_element_located(custom_element))
            # print('获取到了元素:',toast.text,type)
            return self.driver.find_element_by_xpath(custom_element[1])
        except Exception:
            # raise e
            # print('没有获取到元素')
            return None

    '''
    找到元素
    '''
    def find_element(self,loc_key, element = None, file_path = None):
        try:
            element = WebDriverWait(self.driver,5, poll_frequency=0.5) \
            .until(lambda driver: self.my_local.get_element(loc_key,element,file_path))
            return element
        except Exception:
            return None

    '''
    房间
    '''
    def get_room_element(self):
        return self.find_element('room')


    '''
    添加设备
    '''
    def get_add_device_element(self):
        return self.find_element('add_device')


    '''
    离线元素
    '''
    def get_offline_element(self):
        return self.find_element('is_offline')


    '''
    离线框关闭按钮
    '''
    def get_offline_close(self):
        return self.find_element('universal_offline_close')


    '''
    获取toast元素 如加载失败
    '''
    def get_toast_element(self, message):
        if self.get_toast(message, 5, 0.5):
            return True
        else:
            return False

    '''
    返回到插件首页的按钮
    '''
    def get_plugin_back_homepage_element(self):
        return self.find_element('plugin_back_homepage')


    '''
    通过返回按钮:房间页面返回房间列表页面
    '''
    def get_room_list_back_element(self):
        return self.find_element('room_list_back')


    '''
    三个点
    '''
    def get_more_element(self):
        return self.find_element('more')



    '''设置-定时'''
    def get_timing_section_element(self):
        return self.find_element('timing_section')



    '''定时页面+号按钮'''
    def get_timing_add_button_element(self):
        return self.find_element('timing_add_button')


    '''定时页面-定时picker_view'''
    def get_timing_picker_view_element(self):
        return self.find_element('timing_picker_view')


    '''定时页面-时间段定时'''
    def get_time_period_element(self):
        return self.find_element('time_period')


    '''定时页面-定时开启'''
    def get_time_on_element(self):
        return self.find_element('time_on')



    '''定时页面-定时关闭'''
    def get_time_off_element(self):
        return self.find_element('time_off')


    '''具体定时页面picker_view左边'''
    def get_picker_view_left_element(self):
        return self.find_element('picker_view_left')


    '''具体定时页面picker_view右边'''
    def get_picker_view_right_element(self):
        return self.find_element('picker_view_right')


    '''底部确定按钮'''
    def get_picker_bottom_confirm_element(self):
        return self.find_element('picker_view_bottom_confirm')


    '''重复选项picker_view'''
    def get_repeat_option_picker_view_element(self):
        return self.find_element('repeat_option_picker_view')


    '''执行一次'''
    def get_repeat_option_picker_one_cell_element(self):
        return self.find_element('repeat_option_picker_one_cell')


    '''每天'''
    def get_repeat_option_picker_two_cell_element(self):
        return self.find_element('repeat_option_picker_two_cell')


    '''法定工作日'''
    def get_repeat_option_picker_three_cell_element(self):
        return self.find_element('repeat_option_picker_three_cell')


    '''法定节假日'''
    def get_repeat_option_picker_forth_cell_element(self):
        return self.find_element('repeat_option_picker_forth_cell')


    '''自定义'''
    def get_repeat_option_picker_fifth_cell_element(self):
        return self.find_element('repeat_option_picker_fifth_cell')


    '''定时确定'''
    def get_title_bar_timing_confirm_element(self):
        return self.find_element('title_bar_timing_confirm')


    '''定时取消'''
    def get_title_bar_timing_cancel_element(self):
        return self.find_element('title_bar_timing_cancel')

    '''
    请设置关闭时间
    '''
    def get_timing_none_toast_element(self):
        return self.find_element('off_time_none')

    '''
    定时功能左上角关闭按钮
    '''
    def get_title_bar_return_button_element(self):
        return self.find_element('return_to_timing')

    '''
    重复一次
    '''
    def get_repeat_cell_element(self):
        return self.find_element('repeat')

    '''
    开启
    '''
    def get_view_timer_on_cell_element(self):
        return self.find_element('view_timer_on')

    '''
    关闭
    '''
    def get_view_timer_off_cell_element(self):
        return self.find_element('view_timer_off')


    '''
    自定义重复选项:周日
    '''
    def get_custom_repeat_sunday_element(self):
        return self.find_element('custom_repeat_sunday')


    '''
    开启的具体时间
    '''
    def get_timer_on_detail_element(self):
        return self.find_element('timer_on_detail')


    '''
    关闭的具体时间
    '''
    def get_timer_off_detail_element(self):
        return self.find_element('timer_off_detail')


    '''设置-设备名称'''
    def get_device_name_settings_element(self):
        return self.find_element('device_name_settings')


    '''修改设备名称-删除按钮'''
    def get_input_view_clear_element(self):
        return self.find_element('input_view_clear')


    '''修改设备名称-编辑框'''
    def get_input_view_edit_element(self):
        return self.find_element('input_view_edit')


    '''修改设备名称-确认删除'''
    def get_confirm_button_element(self):
        return self.my_local.get_element('modal_ok_btn')
        # return self.find_element('modal_ok_btn')


    '''修改设备名称-取消确认'''
    def get_cancel_button_element(self):
        return self.my_local.get_element('modal_cancel_btn')
        # return self.find_element('modal_cancel_btn')


    '''设置-设备名称-具体名称'''
    def get_right_detail_device_name_element(self):
        return self.find_element('device_name_right_detail')


    '''设置-设备名称-超出最大字符限制'''
    def get_exceeded_the_maximum_character_limit_alert(self):
        return self.find_element('exceeded_the_maximum_character_limit_alert')


    '''发现附近设备弹窗'''
    def get_discovery_device_alert_element(self):
        return self.my_local.get_element('discovery_device_modal')


    '''家庭共享弹窗'''
    def get_home_share_alert_element(self):
        return self.my_local.get_element('home_share_modal')


    '''门锁报警弹窗类的我知道了按钮'''
    def get_home_i_know_alert_element(self):
        return self.my_local.get_element('home_i_know_tips')


    '''升级提醒框'''
    def get_device_upgrade_alert_element(self):
        return self.my_local.get_element('device_upgrade_modal_desc')


    '''进入插件的loading图标'''
    def  get_loading_element(self):
        return self.my_local.get_element('device_loading_icon')


    '''授权弹窗'''
    def get_user_licence_title_element(self):
        return self.my_local.get_element('user_license_title')


    '''授权弹窗确认授权按钮'''
    def get_user_licence_agree_element(self):
        return self.my_local.get_element('user_license_agree')


    '''room_tag 判断是否还停留在房间页面'''
    def get_room_tag_element(self):
        return self.my_local.get_element('room_tag')


    '''
    截屏
    '''
    def get_screen_shot_image(self):
        imageRGB = ImageRGBD()
        file_path = imageRGB.get_screenshot_path()
        self.driver.get_screenshot_as_file(file_path)
        return file_path
Пример #24
0
class ActionMethod:
    def __init__(self):
        base_driver = BaseDriver()
        self.driver = base_driver.android_driver(0)
        self.get_by_local = GetByLocal(self.driver)

    def input(self, *args):
        '''
        输入值
        '''
        # key,value
        element = self.get_by_local.get_element(args[0])
        if element == None:
            return args[0], "元素没找到"
        element.send_keys(args[1])

    def on_click(self, *args):
        '''
        元素点击
        '''
        element = self.get_by_local.get_element(args[0])
        if element == None:
            return args[0], "元素没找到"
        element.click()

    def sleep_time(self, *args):
        time.sleep(int(args[0]))

    # 获取屏幕的宽高
    def get_size(self, *args):
        size = self.driver.get_window_size()
        width = size['width']
        height = size['height']
        return width, height

    # 向左边滑动
    def swipe_left(self, *args):
        #[100,200]
        x1 = self.get_size()[0] / 10 * 9
        y1 = self.get_size()[1] / 2
        x = self.get_size()[0] / 10
        self.driver.swipe(x1, y1, x, y1, 2000)

    # 向右边滑动
    def swipe_right(self, *args):
        #[100,200]
        x1 = self.get_size()[0] / 10
        y1 = self.get_size()[1] / 2
        x = self.get_size()[0] / 10 * 9
        self.driver.swipe(x1, y1, x, y1, 2000)

    # 向上滑动
    def swipe_up(self, *args):
        #[100,200]direction
        x1 = self.get_size()[0] / 2
        y1 = self.get_size()[1] / 10 * 6
        y = self.get_size()[1] / 10 * 2
        self.driver.swipe(x1, y1, x1, y, 1000)

    # 向下滑动
    def swipe_down(self, *args):
        #[100,200]
        x1 = self.get_size()[0] / 2
        y1 = self.get_size()[1] / 10
        y = self.get_size()[1] / 10 * 9
        self.driver.swipe(x1, y1, x1, y)

    def get_element(self, *args):
        element = self.get_by_local.get_element(args[0])
        if element == None:
            return None
        return element
Пример #25
0
 def __init__(self):
     self.driver = DriverUtil.get_driver()
     self.my_local = GetByLocal(self.driver)
     self.custom_name = My_Custom_Name()
Пример #26
0
class LoginPage:
    """获取登录页所有的页面元素信息"""

    def __init__(self, driver):
        self.get_by_local = GetByLocal(driver)
        self.read_ini = ReadIni()

    def wait_element(self, section, option):
        """元素等待&获取元素信息"""
        value = self.read_ini.get_value(section, option)
        self.get_by_local.element_wait(section, option)
        el = self.get_by_local.get_element(section, option)
        return value, el

    def get_login_panel_element(self):
        """获取登录/注册弹框元素信息"""
        return self.wait_element('login_panel_element', 'login_panel')

    def get_close_btn_element(self):
        """获取关闭按钮元素信息"""
        return self.wait_element('login_panel_element', 'close_btn')

    def get_gift_image_element(self):
        """获取新人礼包图片元素信息"""
        return self.wait_element('login_panel_element', 'gift_image')

    def get_register_btn_element(self):
        """获取注册按钮元素信息"""
        return self.wait_element('login_panel_element', 'register_btn')

    def get_loginPanel_wechat_element(self):
        """获取弹框上微信登录元素信息"""
        return self.wait_element('login_panel_element', 'wechat_btn')

    def get_phone_btn_element(self):
        """获取手机登录元素信息"""
        return self.wait_element('login_panel_element', 'phone_btn')

    # ----------------------------------------------------------------------

    def get_loginPage_back_element(self):
        """获取登录页面返回按钮元素信息"""
        return self.wait_element('phoneLoginRegister_element', 'back')

    def get_loginRegister_title_element(self):
        """获取标题元素信息"""
        return self.wait_element('phoneLoginRegister_element', 'title_text')

    def get_phone_input_element(self):
        """获取手机号输入框元素信息"""
        return self.wait_element('phoneLoginRegister_element', 'phone_input')

    def get_clear_btn_element(self):
        """获取清空按钮元素信息"""
        return self.wait_element('phoneLoginRegister_element', 'clear_btn')

    def get_sendMsgCode_btn_element(self):
        """获取发送验证码按钮元素信息"""
        return self.wait_element('phoneLoginRegister_element', 'sendMsgCode_btn')

    def get_bottom_text_element(self):
        """获取底部文案元素信息"""
        return self.wait_element('phoneLoginRegister_element', 'bottom_text')

    def get_protocol_btn_element(self):
        """获取用户协议入口元素信息"""
        return self.wait_element('phoneLoginRegister_element', 'protocol_btn')

    def get_pwLogin_btn_element(self):
        """获取密码登录入口元素信息"""
        return self.wait_element('phoneLoginRegister_element', 'pwLogin_btn')

    def get_qq_btn_element(self):
        """获取QQ登录按钮元素信息"""
        return self.wait_element('phoneLoginRegister_element', 'qq_btn')

    def get_loginPage_wechat_element(self):
        """获取微信登录按钮元素信息"""
        return self.wait_element('phoneLoginRegister_element', 'wechat_btn')

    def get_weibo_btn_element(self):
        """获取微博登录元素信息"""
        return self.wait_element('phoneLoginRegister_element', 'weibo_btn')

    # ----------------------------------------------------------------------

    def get_msg_title_element(self):
        """获取输入验证码页面标题元素信息"""
        return self.wait_element('phoneLoginRegister_element', 'title_text')

    def get_sendTo_text_element(self):
        """获取验证码已发送至xxx文案元素信息"""
        return self.wait_element('sendMsgCode_page_element', 'sendTo_text')

    def get_code_input_element(self):
        """获取验证码输入框元素信息"""
        return self.wait_element('sendMsgCode_page_element', 'code_input')

    def get_login_btn_element(self):
        """获取登录按钮元素信息"""
        return self.wait_element('sendMsgCode_page_element', 'login_btn')

    def get_reSend_text_element(self):
        """获取重发文案"""
        return self.wait_element('sendMsgCode_page_element', 'reSend_text')

    def get_sendMsgBack_element(self):
        """获取输入验证码页面返回按钮元素信息"""
        return self.wait_element('sendMsgCode_page_element', 'back')

    def get_alert_text_element(self):
        """获取确认框文案元素信息"""
        return self.wait_element('sendMsgCode_page_element', 'alert_text')

    def get_alert_ok_elemnt(self):
        """获取确认框确认按钮元素信息"""
        return self.wait_element('sendMsgCode_page_element', 'alert_ok')

    def get_alert_cancel_element(self):
        """获取确认框取消按钮元素信息"""
        return self.wait_element('sendMsgCode_page_element', 'alert_cancel')

    # ----------------------------------------------------------------------

    def get_pwLoginBack_element(self):
        """获取用户名密码页返回按钮元素信息"""
        return self.wait_element('sendMsgCode_page_element', 'back')

    def get_title_element(self):
        """获取用户名密码页标题文案元素信息"""
        return self.wait_element('pwLogin_element', 'title')

    def get_findpw_btn_element(self):
        """获取找回密码元素信息"""
        return self.wait_element('pwLogin_element', 'findpw_btn')

    def get_user_input_element(self):
        """获取用户名输入框元素信息"""
        return self.wait_element('pwLogin_element', 'user_input')

    def get_pw_input_element(self):
        """获取密码输入框元素信息"""
        return self.wait_element('pwLogin_element', 'pw_input')

    def get_pwLoginBtn_element(self):
        """获取登录按钮元素信息"""
        return self.wait_element('pwLogin_element', 'login_btn')

    def get_tryPhone_text_element(self):
        """获取底部文案元素信息"""
        return self.wait_element('pwLogin_element', 'tryPhone_text')

    def get_tryPhone_btn_element(self):
        """获取手机号登录入口元素信息"""
        return self.wait_element('pwLogin_element', 'tryPhone_btn')
Пример #27
0
class NoticePage:
    # 获取登录页面所有的页面元素信息
    def __init__(self, driver):
        self.driver = driver
        self.get_by_local = GetByLocal(self.driver)

    def get_school_element(self):
        # 获取家校元素信息
        return self.get_by_local.get_element('school',
                                             'teacher_notice_element')

    def get_create_teacher_notice_element(self):
        # 获取通知元素信息
        return self.get_by_local.get_element('create_notice',
                                             'teacher_notice_element')

    def get_notice_content_element(self):
        # 获取通知内容元素信息
        return self.get_by_local.get_element('notice_content',
                                             'teacher_notice_element')

    def get_send_to_element(self):
        # 获取选择联系人元素信息
        return self.get_by_local.get_element('send_to',
                                             'teacher_notice_element')

    def get_select_all_element(self):
        # 获取选择所有班级元素信息
        return self.get_by_local.get_element('select_all',
                                             'teacher_notice_element')

    def get_tost_element(self, message):
        # 获取tostelement
        time.sleep(2)
        tost_element = ("xpath", "//*[contains(@text," + message + ")]")
        return WebDriverWait(self.driver, 10, 0.1).until(
            EC.presence_of_element_located(tost_element))

    def get_screenshot(self, file_name):
        # 截屏
        return self.screenshot.saveScreenshot(file_name)

    def get_right_button_element(self):
        # 获取确定按钮的元素信息
        return self.get_by_local.get_element('right_button',
                                             'teacher_notice_element')

    def get_back_button_element(self):
        # 获取确定按钮的元素信息
        return self.get_by_local.get_element('back_button',
                                             'teacher_notice_element')

    def get_notice_content(self):
        return self.get_by_local.get_element('content',
                                             'teacher_notice_element')

    def get_notice_element_for_title(self, title):
        elements = self.get_by_local.get_element('notice_title',
                                                 'teacher_notice_element')
        teacher_notice_element = False
        for element in elements:
            if element.text == title:
                teacher_notice_element = element
                break
        return teacher_notice_element

    def get_notice_element_for_content(self, content):
        elements = self.get_by_local.get_element('content',
                                                 'teacher_notice_element')
        content_element = False
        for element in elements:
            if element.text == content:
                content_element = element
                break
        return content_element

    def get_homepage_element(self):
        # 获取选择联系人元素信息
        return self.get_by_local.get_element('home_page')
 def __init__(self, driver):
     self.get_by_local = GetByLocal(driver)
Пример #29
0
def login():
    get_by_local = GetByLocal(driver)
    get_by_local.get_element("username").send_keys("15101658189")
    get_by_local.get_element("password").send_keys("1991")
    get_by_local.get_element("login_button").click()