Пример #1
0
class qingjia_daixinshijia_page(BasePage):
    def __init__(self, appiumdriver):
        self.base_page = BasePage(appiumdriver)

    '''带薪事假成功申请'''

    def daixinshijia_zhengchang_success(self):
        # 点击请假
        qingjia_button = self.base_page.find_byID_(
            'com.flashexpress.backyard:id/_leave')
        qingjia_button.click()
        # 切换到webview下
        view_now = 'WEBVIEW_com.flashexpress.backyard'
        self.base_page.to_now_context(view_now)
        cot = self.base_page.get_context()
        print(cot)
        print('点击请假类型前:')
        # 点击请假类型
        self.base_page.find_byxpath(
            '//*[@id="app"]/div/div[1]/div[1]/div/input').click()
        cots = self.base_page.get_context()
        print(cots)
        print('点击请假类型后:')
        # 点击带薪事假(带薪)按钮
        self.base_page.find_byClassAndTag('date-list', 'li', 0, 1).click()
        time.sleep(3)
        self.base_page.to_now_context(view_now)
        # 点击开始时间按钮
        # self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[2]/div/input').click()
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 1,
                                          0).click()
        print('还没有点击时间21')
        # 点击21号,如果后续日期更换,只更换对于的坐标就可以了
        ''' 位置信息 '''
        self.base_page.by_TouchAction_dingwei(100, 1700)
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        print('点击了确定按钮')
        time.sleep(3)
        # 点击结束时间按钮
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 2,
                                          0).click()
        time.sleep(2)

        # 点击22号,如果后续日期更换,只更换对于的坐标就可以了
        # 坐标位置 = [18,1473][165,1608]
        ''' 位置信息 '''
        self.base_page.by_TouchAction_dingwei(200, 1700)
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        time.sleep(1)
        # 输入请假原因
        self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[6]/textarea'
                                    ).send_keys('带薪事假-请假的原因')
        time.sleep(2)
        # 浏览器页面需要向上滑动一下
        self.base_page.swipeUp()
        time.sleep(2)
        # 点击提交按钮
        # 提交按钮 = [90, 1695][990, 1830]
        self.base_page.by_TouchAction_dingwei(500, 1750)
        time.sleep(1)
        # 提交的确认弹框
        # 确定按钮 = [540,1245][1017,1365]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        time.sleep(3)
Пример #2
0
class qingjia_nianjia_page(BasePage):


    def __init__(self,appiumdriver):
        self.base_page = BasePage(appiumdriver)

    '''
        年假正常时间范围,可以申请:选择2019/9/20-2019/9/21,如果修改脚本,只修改日期的  位置信息  就行
    '''
    def nianjia_zhengchang_success(self):
        #点击请假
        qingjia_button = self.base_page.find_byID_('com.flashexpress.backyard:id/_leave')
        qingjia_button.click()
        #切换到webview下
        view_now = 'WEBVIEW_com.flashexpress.backyard'
        self.base_page.to_now_context(view_now)
        cot = self.base_page.get_context()
        print(cot)
        print('点击请假类型前:')
        #点击请假类型
        self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[1]/div/input').click()
        cots = self.base_page.get_context()
        print(cots)
        print('点击请假类型后:')
        #点击年假(带薪)按钮
        self.base_page.find_byClassAndTag('date-list', 'li', 0, 0).click()
        time.sleep(3)
        self.base_page.to_now_context(view_now)
        #点击开始时间按钮
        #self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[2]/div/input').click()
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 1, 0).click()
        print('还没有点击时间26')
        #点击26号,如果后续日期更换,只更换对于的坐标就可以了 [618,1473][768,1608]
        ''' 位置信息 '''
        a = read_yaml_file('nianjia_zhengchang_success','startTime')
        self.base_page.by_TouchAction_dingwei(a[0],a[1])
        time.sleep(3)
        #点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800,1300)
        print('点击了确定按钮')
        time.sleep(3)
        #点击结束时间按钮
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 2, 0).click()
        time.sleep(2)

        # 点击28号,如果后续日期更换,只更换对于的坐标就可以了
        # 坐标位置 = [921,1473][1068,1608]
        ''' 位置信息 '''
        b = read_yaml_file('nianjia_zhengchang_success','endTime')
        self.base_page.by_TouchAction_dingwei(b[0], b[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        time.sleep(1)
        #输入请假原因
        self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[6]/textarea').send_keys('请假的原因')
        time.sleep(2)
        #浏览器页面需要向上滑动一下
        self.base_page.swipeUp()
        time.sleep(2)
        #点击提交按钮
        # 提交按钮 = [90, 1695][990, 1830]
        self.base_page.by_TouchAction_dingwei(500,1750)
        # 提交的确认弹框
        # 确定按钮 = [540,1245][1017,1365]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        time.sleep(3)

    '''
    年假超出时间范围:选择2019/9/18-2019/9/30,如果修改脚本,只修改日期的  位置信息  就行
    10.12 = [921,1755][1068,1890]  (1000,1800)
    9.30 = [168,1614][315,1749]   (250,1700)
    '''
    def nianjia_chaochu_time_tishi(self):
        # 点击请假
        qingjia_button = self.base_page.find_byID_('com.flashexpress.backyard:id/_leave')
        qingjia_button.click()
        time.sleep(1)
        # 切换到webview下
        view_now = 'WEBVIEW_com.flashexpress.backyard'
        self.base_page.to_now_context(view_now)
        cot = self.base_page.get_context()
        print(cot)
        print('点击请假类型前:')
        # 点击请假类型
        self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[1]/div/input').click()
        cots = self.base_page.get_context()
        print(cots)
        print('点击请假类型后:')
        # 点击年假(带薪)按钮
        try:
            ele = self.base_page.find_byClassAndTag('date-list', 'li', 0, 0)
        except:
            for i in range(3):
                ele.click()
                time.sleep(1)
        else:
            ele.click()
        time.sleep(3)
        self.base_page.to_now_context(view_now)
        # 点击开始时间按钮
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 1, 0).click()
        time.sleep(2)
        print('还没有点击时间18')
        ''' 位置信息 '''
        # 点击9.30号,如果后续日期更换,只更换对于的坐标就可以了 [18,1614][165,1749]
        c = read_yaml_file('nianjia_chaochu_time_tishi','startTime')
        self.base_page.by_TouchAction_dingwei(c[0],c[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        print('点击了确定按钮')
        time.sleep(3)
        # 点击结束时间按钮
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 2, 0).click()
        time.sleep(2)
        # 点击10.12号,如果后续日期更换,只更换对于的坐标就可以了
        # 坐标位置 = [168,1614][315,1749]
        ''' 位置信息 '''
        d = read_yaml_file('nianjia_chaochu_time_tishi', 'endTime')
        self.base_page.by_TouchAction_dingwei(d[0], d[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        time.sleep(1)
        # 输入请假原因
        self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[6]/textarea').send_keys('请假的原因')
        time.sleep(2)
        # 浏览器页面需要向上滑动一下
        self.base_page.swipeUp()
        time.sleep(2)
        # 点击提交按钮
        # 提交按钮 = [90, 1695][990, 1830]
        self.base_page.by_TouchAction_dingwei(500, 1750)
        #请您确认请假时间确认弹框提示
        # 确认 = [540,1245][1017,1365]
        self.base_page.by_TouchAction_dingwei(800,1300)
        time.sleep(3)
        #获取点击提交按钮后的提示
        text = self.base_page.find_byxpath('/html/body/div[2]/div/div[2]/div[1]').text
        print('texttexttexttexttexttexttexttext')
        print(text)
        print('texttexttexttexttexttexttexttext')
        time.sleep(2)
        return text
Пример #3
0
class case_fail(BasePage):
    def __init__(self, appium_driver):
        self.base_page = BasePage(appium_driver)

    def to_wodeshenqing_page(self):
        time.sleep(3)
        self.base_page.to_now_context('NATIVE_APP')
        time.sleep(5)
        # result = []
        # con = self.base_page.get_context()
        #
        # print('审批页面的context:开始输出')
        # print(con)
        # print('审批页面的context:输出结束')
        '''
        底部导航栏是原生按钮
        如果当前页面在可见审批导航栏页面,需要点击审批按钮,进入审批页面
        点击我的申请按钮
        点击待审批按钮,进入请假申请页面
        页面向上滑动一次
        点击撤销按钮
        点击确认撤销提示的 确定按钮
        点击页面的返回按钮,页面返回至审批页面
        '''

        # 点击审批按钮

        self.base_page.find_bytext('审批').click()
        time.sleep(2)
        # context_now = 'WEBVIEW_com.flashexpress.backyard'
        # self.base_page.to_now_context(context_now)
        # time.sleep(5)
        # print("点击我的申请前:当前的context")
        # #print(self.base_page.get_current_context())
        # print("点击我的申请前:当前的context")
        # 点击我的申请
        self.base_page.by_touchAction_uiautomator2(700, 400)
        # wodeshenqing = self.base_page.find_byxpath('//*[@id="app"]/div/a[2]')
        # wodeshenqing.click()
        time.sleep(1)

    def return_len_jiabanleixing(self):
        time.sleep(1)
        #print(self.base_page.return_current_window_handle())
        #print(self.base_page.return_all_handles())
        # #获取我的申请页面的加班类型文字
        # self.base_page.to_now_context('NATIVE_APP')
        # time.sleep(5)
        self.base_page.to_now_context('WEBVIEW_com.flashexpress.backyard')
        time.sleep(5)
        try:
            jiabanleixing = self.base_page.find_byxpath(
                '//*[@id="pageOne"]/div/div[2]/div/div[1]/div/div/div/div[2]/div[2]/div[1]'
            ).text
            print('加班类型:' * 8)
            print(jiabanleixing)
            print('加班类型:' * 8)
        except NoSuchElementException:
            print('没有找到加班类型文字,证明不需要撤销')
            print(NoSuchElementException)
        else:
            time.sleep(2)
            return jiabanleixing

    def return_len_qingjialeixing(self):
        time.sleep(1)
        #print(self.base_page.return_current_window_handle())
        #print(self.base_page.return_all_handles())
        # #获取我的申请页面的请假类型文字
        # self.base_page.to_now_context('NATIVE_APP')
        # time.sleep(5)
        self.base_page.to_now_context('WEBVIEW_com.flashexpress.backyard')
        time.sleep(5)
        print('当前context' * 8)
        print(self.base_page.get_current_context())
        print('当前context' * 8)
        self.base_page.to_now_context('NATIVE_APP')
        # self.base_page.to_now_context('WEBVIEW_com.flashexpress.backyard')
        time.sleep(5)
        print('当前contexct' * 9)
        print(self.base_page.get_current_context())
        print('当前contexct' * 9)
        page = self.base_page.return_page()
        print(page)
        try:
            qingjia = self.base_page.find_byH5_className(
                'android.view.View', 12)
        except IndexError:
            print(IndexError)
        else:
            # qingjia = self.base_page.find_byxpath('//*[@id="pageOne"]/div/div[2]/div/div[1]/div/div/div/div[2]/div[1]/div[2]')
            print('请假' * 9)
            print(qingjia)
            print('请假' * 9)
            qingjialeixing = qingjia.text
            return qingjialeixing

    def chexiaoshenqing_success(self):
        #  print('点击前待审批页面的context')
        # # print(self.base_page.get_context())
        #  print('点击前待审批页面的context')
        # 各种方法定位不到,只能通过模拟点击事件 [837,378][963,429] 考虑兼容性。进来靠右边一些
        # 点击待审批按钮
        self.base_page.by_touchAction_uiautomator2(x=900, y=400)
        #  print('点击后待审批页面的context')
        # # print(self.base_page.get_context())
        #  print('点击后待审批页面的context')
        time.sleep(3)
        self.base_page.swipeUp()
        time.sleep(2)
        # 无法获取撤销按钮,改用模拟点击事件  [315,1602][765,1740]
        # self.base_page.find_by_H5_name('撤销').click()
        #点击撤销按钮
        self.base_page.by_touchAction_uiautomator2(x=500, y=1700)
        time.sleep(2)
        # 无法获取确定按钮,改用模拟点击事件[546, 1353][1005, 1473]
        # self.base_page.find_by_H5_name('确定').click()
        self.base_page.by_touchAction_uiautomator2(x=900, y=1400)
        time.sleep(2)
        # 点击返回按钮,页面返回到审批页面,但是back方法不可使用,
        # self.base_page.back_()
        # 返回按钮 =[30,54][174,198]
        self.base_page.by_TouchAction_dingwei(100, 150)
        time.sleep(2)
        #self.base_page.to_now_context('NATIVE_APP')
        time.sleep(5)
        # self.base_page.to_now_context('WEBVIEW_com.flashexpress.backyard')
        # time.sleep(2)
        # self.base_page.find_byxpath('//*[@id="app"]/div/a[2]').text
        # 点击打卡按钮  [109,1791][160,1857]
        self.base_page.by_touchAction_uiautomator2(130, 1830)
        time.sleep(2)

    def fanhuidao_daka_page(self):
        #点击我的申请页面返回按钮
        self.base_page.to_now_context('NATIVE_APP')
        time.sleep(5)
        #[30,54][174,198]
        self.base_page.by_touchAction_uiautomator2(100, 100)
        time.sleep(2)
        #点击打卡按钮  [109,1791][160,1857]
        self.base_page.by_touchAction_uiautomator2(130, 1830)
        time.sleep(2)
class qingjia_chanjianjia_page(BasePage):
    def __init__(self, appiumdriver):
        self.base_page = BasePage(appiumdriver)

    '''产检(带薪)成功申请'''

    def chanjianjia2day_zhengchang_success(self):

        # 点击请假
        try:
            qingjia_button = self.base_page.find_byID_(
                'com.flashexpress.backyard:id/_leave')
        except:
            for i in range(3):
                qingjia_button.click()
                time.sleep(1)
        else:
            qingjia_button.click()
        # 切换到webview下
        view_now = 'WEBVIEW_com.flashexpress.backyard'
        self.base_page.to_now_context(view_now)
        cot = self.base_page.get_context()
        print(cot)
        print('点击请假类型前:')
        # 点击请假类型
        try:
            ele = self.base_page.find_byxpath(
                '//*[@id="app"]/div/div[1]/div[1]/div/input')
        except NoSuchElementException:
            for i in range(3):
                ele.click()
                time.sleep(1)
        else:
            ele.click()
        cots = self.base_page.get_context()
        print(cots)
        print('点击请假类型后:')
        # 点击产检假(带薪)按钮,修改请假类型,只需要更改后边的li的下标
        self.base_page.find_byClassAndTag('date-list', 'li', 0, 12).click()
        time.sleep(3)
        self.base_page.to_now_context(view_now)
        # 点击开始时间按钮
        # self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[2]/div/input').click()
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 1,
                                          0).click()
        print('还没有点击时间21')
        # 点击21号,如果后续日期更换,只更换对于的坐标就可以了
        ''' 位置信息 '''
        x = read_yaml_file('chanjianjia2day_zhengchang_success', 'startTime')
        self.base_page.by_TouchAction_dingwei(x[0], x[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        print('点击了确定按钮')
        time.sleep(3)
        # 点击结束时间按钮
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 2,
                                          0).click()
        time.sleep(2)

        # 点击22号,如果后续日期更换,只更换对于的坐标就可以了
        # 坐标位置 = [18,1473][165,1608]
        ''' 位置信息 '''
        y = read_yaml_file('chanjianjia2day_zhengchang_success', 'endTime')
        self.base_page.by_TouchAction_dingwei(y[0], y[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        time.sleep(1)
        # 输入请假原因
        self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[6]/textarea'
                                    ).send_keys('产检假两天-请假的原因')
        time.sleep(2)
        # 浏览器页面需要向上滑动一下
        self.base_page.swipeUp()
        time.sleep(2)
        # 点击提交按钮
        # 提交按钮 = [90, 1695][990, 1830]
        self.base_page.by_TouchAction_dingwei(500, 1750)
        time.sleep(2)
        # 提交的确认弹框
        # 确定按钮 = [540,1245][1017,1365]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        self.base_page.to_now_context('NATIVE_APP')
        time.sleep(3)
        qingjia_button_text = self.base_page.find_byandroid_text('请假').text
        print('打卡页面的 请假按钮文字')
        print(qingjia_button_text)
        print('打卡页面的 请假按钮文字')
        return qingjia_button_text

    '''产检假,超出8天后,会提示:请假余额已用完 只能申请时间今天及今天以后,不限制次数,按天数算'''

    def chanjianjia9day_fail(self):
        time.sleep(2)
        # 点击请假
        qingjia_button = self.base_page.find_byID_(
            'com.flashexpress.backyard:id/_leave')
        qingjia_button.click()
        time.sleep(1)
        # 切换到webview下
        view_now = 'WEBVIEW_com.flashexpress.backyard'
        self.base_page.to_now_context(view_now)
        cot = self.base_page.get_context()
        print(cot)
        print('点击请假类型前:')
        # 点击请假类型
        self.base_page.find_byxpath(
            '//*[@id="app"]/div/div[1]/div[1]/div/input').click()
        time.sleep(1)
        cots = self.base_page.get_context()
        print(cots)
        print('点击请假类型后:')
        # 点击带薪事假(带薪)按钮,修改请假类型,只需要更改后边的li的下标
        self.base_page.find_byClassAndTag('date-list', 'li', 0, 12).click()
        time.sleep(3)
        self.base_page.to_now_context(view_now)
        # 点击开始时间按钮
        # self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[2]/div/input').click()
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 1,
                                          0).click()
        time.sleep(1)
        print('还没有点击时间27')
        # 点击19号,如果后续日期更换,只更换对于的坐标就可以了 [771,1473][918,1608]
        ''' 位置信息 '''
        a = read_yaml_file('chanjianjia9day_fail', 'startTime')
        self.base_page.by_TouchAction_dingwei(a[0], a[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        print('点击了确定按钮')
        time.sleep(3)
        # 点击结束时间按钮
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 2,
                                          0).click()
        time.sleep(2)

        # 点击10.3 号,如果后续日期更换,只更换对于的坐标就可以了
        # 坐标位置 = [618,1614][768,1749]
        ''' 位置信息 '''
        b = read_yaml_file('chanjianjia9day_fail', 'endTime')
        self.base_page.by_TouchAction_dingwei(b[0], b[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        time.sleep(1)
        # 输入请假原因
        self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[6]/textarea'
                                    ).send_keys('产检假8.5天-请假的原因')
        time.sleep(2)
        # 浏览器页面需要向上滑动一下
        self.base_page.swipeUp()
        time.sleep(2)
        # 点击提交按钮
        # 提交按钮 = [90, 1695][990, 1830]
        self.base_page.by_TouchAction_dingwei(500, 1750)
        time.sleep(2)
        # 提交的确认弹框
        # 确定按钮 = [540,1245][1017,1365]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        # self.base_page.to_now_context('NATIVE_APP')
        time.sleep(3)
        # 获取点击提交按钮后的提示  请假余额已用完
        a_text = self.base_page.find_byxpath(
            '/html/body/div[2]/div/div[2]/div[1]').text
        print('texttexttexttexttexttexttexttext')
        print(a_text)
        print('texttexttexttexttexttexttexttext')
        # 点击请假余额已用完确认提示
        self.base_page.find_byxpath(
            '/html/body/div[2]/div/div[3]/button[2]').click()
        time.sleep(2)
        # 将context设置成原生app
        # self.base_page.to_now_context('NATIVE_APP')
        # time.sleep(5)
        # 点击返回按钮
        # self.base_page.find_byID_('com.flashexpress.backyard:id/iv_back').click()
        self.base_page.by_touchAction_uiautomator2(100, 100)
        time.sleep(2)
        return a_text
Пример #5
0
class qingjia_chanjia_zaiciqingjia_page(BasePage):
    def __init__(self, appiumdriver):
        self.base_page = BasePage(appiumdriver)

    '''产假成功申请'''

    def chanjia2day_zaiciqingjia(self):

        self.base_page.to_now_context('NATIVE_APP')
        time.sleep(5)
        # 点击请假
        try:
            qingjia_button = self.base_page.find_byID_(
                'com.flashexpress.backyard:id/_leave')
        except NoSuchElementException:
            for i in range(20):
                qingjia_button.click()
                time.sleep(1)
        else:
            qingjia_button.click()
        time.sleep(3)
        # 切换到webview下
        view_now = 'WEBVIEW_com.flashexpress.backyard'
        self.base_page.to_now_context(view_now)
        time.sleep(3)
        cot = self.base_page.get_context()
        print(cot)
        print('点击请假类型前:')
        # 点击请假类型
        self.base_page.find_byxpath(
            '//*[@id="app"]/div/div[1]/div[1]/div/input').click()
        time.sleep(2)
        cots = self.base_page.get_context()
        print(cots)
        print('点击请假类型后:')
        # 点击带薪事假(带薪)按钮,修改请假类型,只需要更改后边的li的下标
        self.base_page.find_byClassAndTag('date-list', 'li', 0, 3).click()
        time.sleep(3)
        self.base_page.to_now_context(view_now)
        time.sleep(3)
        # 点击开始时间按钮
        # self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[2]/div/input').click()
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 1,
                                          0).click()
        time.sleep(1)
        print('还没有点击时间21')
        # 点击27号,如果后续日期更换,只更换对于的坐标就可以了
        ''' 位置信息 '''
        a = read_yaml_file('chanjia2day_zaiciqingjia', 'startTime')
        self.base_page.by_TouchAction_dingwei(a[0], a[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        print('点击了确定按钮')
        time.sleep(3)
        # 点击结束时间按钮
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 2,
                                          0).click()
        time.sleep(2)

        # 点击22号,如果后续日期更换,只更换对于的坐标就可以了
        # 坐标位置 = [18,1473][165,1608]
        ''' 位置信息 '''
        b = read_yaml_file('chanjia2day_zaiciqingjia', 'endTime')
        self.base_page.by_TouchAction_dingwei(b[0], b[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        time.sleep(2)
        # 输入请假原因
        self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[6]/textarea'
                                    ).send_keys('产假两天-请假的原因')
        time.sleep(2)
        # 浏览器页面需要向上滑动一下
        self.base_page.swipeUp()
        time.sleep(2)
        # 点击提交按钮
        # 提交按钮 = [90, 1695][990, 1830]
        self.base_page.by_TouchAction_dingwei(500, 1750)
        time.sleep(2)
        # 提交的确认弹框
        # 确定按钮 = [540,1245][1017,1365]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        time.sleep(2)
        # 获取点击提交按钮后的提示  请假余额已用完
        a_text = self.base_page.find_byxpath(
            '/html/body/div[2]/div/div[2]/div[1]').text
        time.sleep(1)
        print('texttexttexttexttexttexttexttext')
        print(a_text)
        print('texttexttexttexttexttexttexttext')
        #点击请假余额已用完确认提示
        self.base_page.find_byxpath(
            '/html/body/div[2]/div/div[3]/button[2]').click()
        time.sleep(2)
        #将context设置成原生app
        # self.base_page.to_now_context('NATIVE_APP')
        # time.sleep(5)
        #点击返回按钮
        # self.base_page.find_byID_('com.flashexpress.backyard:id/iv_back').click()
        self.base_page.by_touchAction_uiautomator2(100, 100)
        time.sleep(2)
        return a_text
class qingjia_peixunjia_page(BasePage):
    def __init__(self,appiumdriver):
        self.base_page = BasePage(appiumdriver)
    '''培训假(带薪)成功申请   过去时间的7.5天   2019/9/12-2019/9/19
        12:[618,1191][768,1326]  (700,1200)
        19:[618,1332][768,1467]  (700,1400)
    '''
    def peixunjia_zhengchang_success(self):
        # 点击请假
        qingjia_button = self.base_page.find_byID_('com.flashexpress.backyard:id/_leave')
        qingjia_button.click()
        # 切换到webview下
        view_now = 'WEBVIEW_com.flashexpress.backyard'
        self.base_page.to_now_context(view_now)
        cot = self.base_page.get_context()
        print(cot)
        print('点击请假类型前:')
        # 点击请假类型
        self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[1]/div/input').click()
        cots = self.base_page.get_context()
        print(cots)
        print('点击请假类型后:')
        # 点击公司培训假(带薪)按钮,修改请假类型,只需要更改后边的li的下标
        self.base_page.find_byClassAndTag('date-list', 'li', 0, 11).click()
        time.sleep(3)
        self.base_page.to_now_context(view_now)
        # 点击开始时间按钮
        # self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[2]/div/input').click()
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 1, 0).click()
        print('还没有点击时间21')
        # 点击24号,如果后续日期更换,只更换对于的坐标就可以了
        ''' 位置信息 '''
        a = read_yaml_file('peixunjia_zhengchang_success', 'startTime')
        self.base_page.by_TouchAction_dingwei(a[0], a[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        print('点击了确定按钮')
        time.sleep(3)
        # 点击结束时间按钮
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 2, 0).click()
        time.sleep(2)

        # 点击25号,如果后续日期更换,只更换对于的坐标就可以了
        # 坐标位置 = [18,1473][165,1608]
        ''' 位置信息 '''
        b = read_yaml_file('peixunjia_zhengchang_success', 'endTime')
        self.base_page.by_TouchAction_dingwei(b[0], b[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        time.sleep(1)
        # 输入请假原因
        self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[6]/textarea').send_keys('培训假(带薪)两天-请假的原因')
        time.sleep(2)
        # 浏览器页面需要向上滑动一下
        self.base_page.swipeUp()
        time.sleep(2)
        # 点击提交按钮
        # 提交按钮 = [90, 1695][990, 1830]
        self.base_page.by_TouchAction_dingwei(500, 1750)
        time.sleep(2)
        # 提交的确认弹框
        # 确定按钮 = [540,1245][1017,1365]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        self.base_page.to_now_context('NATIVE_APP')
        time.sleep(3)
        qingjia_button_text = self.base_page.find_byandroid_text('请假').text
        print('打卡页面的 请假按钮文字')
        print(qingjia_button_text)
        print('打卡页面的 请假按钮文字')
        return qingjia_button_text

    '''
    培训假(带薪)申请失败   过去时间的8.5天   2019/9/17-2019/9/25
    17: [318,1332][465,1467](400,1400)
    25:[468,1473][615,1608]  (550,1500)
    '''

    def peixunjia_9day_fail(self):
        # 点击请假
        qingjia_button = self.base_page.find_byID_('com.flashexpress.backyard:id/_leave')
        qingjia_button.click()
        # 切换到webview下
        view_now = 'WEBVIEW_com.flashexpress.backyard'
        self.base_page.to_now_context(view_now)
        cot = self.base_page.get_context()
        print(cot)
        print('点击请假类型前:')
        # 点击请假类型
        self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[1]/div/input').click()
        cots = self.base_page.get_context()
        print(cots)
        print('点击请假类型后:')
        # 点击公司培训假(带薪)按钮,修改请假类型,只需要更改后边的li的下标
        self.base_page.find_byClassAndTag('date-list', 'li', 0, 11).click()
        time.sleep(3)
        self.base_page.to_now_context(view_now)
        # 点击开始时间按钮
        # self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[2]/div/input').click()
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 1, 0).click()
        print('还没有点击时间21')
        # 点击24号,如果后续日期更换,只更换对于的坐标就可以了
        ''' 位置信息 '''
        a = read_yaml_file('peixunjia_9day_fail', 'startTime')
        self.base_page.by_TouchAction_dingwei(a[0], a[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        print('点击了确定按钮')
        time.sleep(3)
        # 点击结束时间按钮
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 2, 0).click()
        time.sleep(2)

        # 点击25号,如果后续日期更换,只更换对于的坐标就可以了
        # 坐标位置 = [18,1473][165,1608]
        ''' 位置信息 '''
        b = read_yaml_file('peixunjia_zhengchang_success', 'endTime')
        self.base_page.by_TouchAction_dingwei(b[0], b[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        time.sleep(1)
        # 输入请假原因
        self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[6]/textarea').send_keys('培训假(带薪)两天-请假的原因')
        time.sleep(2)
        # 浏览器页面需要向上滑动一下
        self.base_page.swipeUp()
        time.sleep(2)
        # 点击提交按钮
        # 提交按钮 = [90, 1695][990, 1830]
        self.base_page.by_TouchAction_dingwei(500, 1750)
        time.sleep(2)
        # 提交的确认弹框
        # 确定按钮 = [540,1245][1017,1365]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        # self.base_page.to_now_context('NATIVE_APP')
        time.sleep(3)
        # 获取点击提交按钮后的提示  请假余额已用完
        a_text = self.base_page.find_byxpath('/html/body/div[2]/div/div[2]/div[1]').text
        print('texttexttexttexttexttexttexttext')
        print(a_text)
        print('texttexttexttexttexttexttexttext')
        # 点击请假余额已用完确认提示
        self.base_page.find_byxpath('/html/body/div[2]/div/div[3]/button[2]').click()
        # 将context设置成原生app
        self.base_page.to_now_context('NATIVE_APP')
        time.sleep(5)
        # 点击返回按钮
        # self.base_page.find_byID_('com.flashexpress.backyard:id/iv_back').click()
        self.base_page.by_touchAction_uiautomator2(100, 100)
        return a_text

        '''
class qingjia_chanjia_2day_page(BasePage):
    def __init__(self, appiumdriver):
        self.base_page = BasePage(appiumdriver)

    '''产假两天'''

    def chanjia2day_zhengchang_success(self):
        self.base_page.to_now_context('NATIVE_APP')
        time.sleep(3)
        # 点击请假
        try:
            qingjia_button = self.base_page.find_byID_(
                'com.flashexpress.backyard:id/_leave')
        except NoSuchElementException:
            for i in range(3):
                qingjia_button.click()
                time.sleep(1)
        else:
            qingjia_button.click()
        time.sleep(1)
        # 切换到webview下
        view_now = 'WEBVIEW_com.flashexpress.backyard'
        self.base_page.to_now_context(view_now)
        time.sleep(3)
        cot = self.base_page.get_context()
        print(cot)
        print('点击请假类型前:')
        # 点击请假类型
        self.base_page.find_byxpath(
            '//*[@id="app"]/div/div[1]/div[1]/div/input').click()
        time.sleep(1)
        cots = self.base_page.get_context()
        print(cots)
        print('点击请假类型后:')
        # 点击带薪事假(带薪)按钮,修改请假类型,只需要更改后边的li的下标
        self.base_page.find_byClassAndTag('date-list', 'li', 0, 3).click()
        time.sleep(3)
        self.base_page.to_now_context(view_now)
        time.sleep(3)
        # 点击开始时间按钮
        # self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[2]/div/input').click()
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 1,
                                          0).click()
        time.sleep(1)
        print('还没有点击时间21')
        # 点击27号,如果后续日期更换,只更换对于的坐标就可以了[771,1473][918,1608]  (800,1500)
        ''' 位置信息 '''
        a = read_yaml_file('chanjia2day_zhengchang_success', 'startTime')
        self.base_page.by_TouchAction_dingwei(a[0], a[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        print('点击了确定按钮')
        time.sleep(3)
        # 点击结束时间按钮
        self.base_page.find_byClassAndTag('mt-item-field-inner', 'input', 2,
                                          0).click()
        time.sleep(2)
        # 点击30号,如果后续日期更换,只更换对于的坐标就可以了 [168,1614][315,1749] (200,1700)
        # 坐标位置 = [18,1473][165,1608]
        ''' 位置信息 '''
        b = read_yaml_file('chanjia2day_zhengchang_success', 'endTime')
        self.base_page.by_TouchAction_dingwei(b[0], b[1])
        time.sleep(3)
        # 点击确按钮
        # 确定按钮位置 = [540,1260][1080,1380]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        time.sleep(3)
        # 输入请假原因
        self.base_page.find_byxpath('//*[@id="app"]/div/div[1]/div[6]/textarea'
                                    ).send_keys('产假两天-请假的原因')
        time.sleep(2)
        # 浏览器页面需要向上滑动一下
        self.base_page.swipeUp()
        time.sleep(2)
        # 点击提交按钮
        # 提交按钮 = [90, 1695][990, 1830]
        self.base_page.by_TouchAction_dingwei(500, 1750)
        time.sleep(2)
        # 提交的确认弹框
        # 确定按钮 = [540,1245][1017,1365]
        self.base_page.by_TouchAction_dingwei(800, 1300)
        time.sleep(2)
        # self.base_page.to_now_context('NATIVE_APP')
        # time.sleep(3)

    def click_daka(self):
        self.base_page.to_now_context('NATIVE_APP')
        time.sleep(3)
        self.base_page.find_byID_(
            'com.flashexpress.backyard:id/idForTabImage').click()
class chexiaoshenqing(BasePage):
    def __init__(self, appium_driver):
        self.base_page = BasePage(appium_driver)

    ''' 审批撤销申请'''

    def shenpi_chexiaoshenqing(self):
        result = []
        # con = self.base_page.get_context()
        #
        # print('审批页面的context:开始输出')
        # print(con)
        # print('审批页面的context:输出结束')
        '''
        底部导航栏是原生按钮
        如果当前页面在可见审批导航栏页面,需要点击审批按钮,进入审批页面
        点击我的申请按钮
        点击待审批按钮,进入请假申请页面
        页面向上滑动一次
        点击撤销按钮
        点击确认撤销提示的 确定按钮
        点击页面的返回按钮,页面返回至审批页面
        
        '''

        self.base_page.to_now_context('NATIVE_APP')
        time.sleep(8)
        # 点击审批按钮
        try:
            ele = self.base_page.find_bytext('审批')
            time.sleep(1)
        except NoSuchElementException:
            print(NoSuchElementException)
            for i in range(3):
                ele.click()
                time.sleep(1)
        else:
            ele.click()
        time.sleep(2)
        print(self.base_page.return_page())
        context_now = 'WEBVIEW_com.flashexpress.backyard'
        self.base_page.to_now_context(context_now)
        time.sleep(5)
        #点击我的申请
        wodeshenqing = self.base_page.find_byxpath('//*[@id="app"]/div/a[2]')
        print(wodeshenqing)
        wodeshenqing.click()
        print(self.base_page.return_page())
        print('点了我的申请')
        time.sleep(3)
        # print('我的申请页面当前的handle')
        # #print(self.base_page.return_current_window_handle())
        # print('我的申请页面当前的handle')
        # print('我的申请页面所有的handle')
        # #print(self.base_page.return_all_handles())
        # print('我的申请页面所有的handle')
        # #获取我的申请页面的请假类型文字

        # time.sleep(8)
        self.base_page.to_now_context('NATIVE_APP')
        # self.base_page.to_now_context('WEBVIEW_com.flashexpress.backyard')
        time.sleep(5)
        print('当前contexct' * 9)
        print(self.base_page.get_current_context())
        print('当前contexct' * 9)
        page = self.base_page.return_page()
        print(page)
        try:
            qingjia = self.base_page.find_byH5_className(
                'android.view.View', 12)
        except NoSuchElementException:
            print(NoSuchElementException)
            # 点击返回按钮,页面返回到审批页面,但是back方法不可使用,
            # self.base_page.back_()
            # 返回按钮 =[30,54][174,198]
            self.base_page.by_TouchAction_dingwei(100, 150)
            time.sleep(2)
            # self.base_page.to_now_context('NATIVE_APP')
            # time.sleep(8)
            self.base_page.to_now_context('WEBVIEW_com.flashexpress.backyard')
            time.sleep(5)
            wodeshenqing_text = self.base_page.find_byxpath(
                '//*[@id="app"]/div/a[2]').text
            result.append(wodeshenqing_text)
            print('result+' * 8)
            print(result)
            return result
        else:
            # qingjia = self.base_page.find_byxpath('//*[@id="pageOne"]/div/div[2]/div/div[1]/div/div/div/div[2]/div[1]/div[2]')
            print('请假' * 9)
            print(qingjia)
            print('请假' * 9)
            qingjialeixing = qingjia.text
            print('请假类型' * 8)
            print(qingjialeixing)
            print('请假类型' * 8)
            result.append(qingjialeixing)
            time.sleep(1)
            # print('点击前待审批页面的context')
            # print(self.base_page.get_context())
            # print('点击前待审批页面的context')
            self.base_page.to_now_context('NATIVE_APP')
            time.sleep(5)
            #各种方法定位不到,只能通过模拟点击事件 [837,378][963,429] 考虑兼容性。进来靠右边一些
            self.base_page.by_touchAction_uiautomator2(x=800, y=400)
            # print('点击后待审批页面的context')
            # #print(self.base_page.get_context())
            # print('点击后待审批页面的context')
            time.sleep(3)
            self.base_page.swipeUp()
            time.sleep(3)
            #无法获取撤销按钮,改用模拟点击事件  [315,1602][765,1740]
            # self.base_page.find_by_H5_name('撤销').click()
            self.base_page.by_touchAction_uiautomator2(x=500, y=1700)
            time.sleep(2)
            #无法获取确定按钮,改用模拟点击事件[546, 1353][1005, 1473]
            # self.base_page.find_by_H5_name('确定').click()
            self.base_page.by_touchAction_uiautomator2(x=900, y=1400)
            time.sleep(2)
            #点击返回按钮,页面返回到审批页面,但是back方法不可使用,
            # self.base_page.back_()
            #返回按钮 =[30,54][174,198]
            self.base_page.by_TouchAction_dingwei(100, 150)
            time.sleep(2)
            # self.base_page.to_now_context('NATIVE_APP')
            # time.sleep(8)
            self.base_page.to_now_context('WEBVIEW_com.flashexpress.backyard')
            time.sleep(2)
            wodeshenqing_text = self.base_page.find_byxpath(
                '//*[@id="app"]/div/a[2]').text
            result.append(wodeshenqing_text)
            print('result+' * 8)
            print(result)
            return result