Ejemplo n.º 1
0
def request_for_overtime(driver, remark, file_path):
    """
    # 加班申请
    :param driver:
    :param remark:备注信息
    :param file_path: 附件路径
    :return:
    """
    into_one_level(driver, '任务面板')
    sleep(1)
    into_one_level(driver, '发起申请')
    get_element(driver, ('xpath', "//div[contains(text(),'加班申请')]")).click()
    get_element(driver, ('id', 'leaveAdd')).click()
    sleep(0.5)
    element = "//*[@id='lay-user-f']/tbody/tr"
    for i in range(0, len(get_elements(driver, ('xpath', element))), 2):
        elements = "//tr[@data-index='%s']/td/input" % i
        get_element(driver, ('xpath', elements)).click()
        sleep(0.1)
    get_element(driver,
                ('xpath', "//button[contains(text(),'添加至已选')]")).click()
    get_element(driver, ('xpath', "//a[contains(text(),'确定')]")).click()
    setting_input_time(driver)
    get_elements(driver,
                 ('xpath', "//div[@class='col-sm-6']/input"))[0].send_keys(
                     get_now_dates())
    get_element(
        driver,
        ('xpath', "//input[@placeholder='选择时间需小于加班结束时间']")).send_keys('20:00')
    get_element(
        driver,
        ('xpath', "//input[@placeholder='选择时间需大于加班开始时间']")).send_keys('21:00')
    overtime_type = "//select[@class='form-control input-sm']/option[%s]" % str(
        random.randint(1, 2))
    get_element(driver, ('xpath', overtime_type)).click()
    get_element(
        driver,
        ('xpath', "//textarea[@class='form-control']")).send_keys(remark)
    get_element(
        driver,
        ('xpath', "//div[@id='uploadFile']/input")).send_keys(file_path)
    get_element(driver, ('xpath', "//button[contains(text(),'提交申请')]")).click()
    get_element(driver, ('id', "success")).click()
    sleep(0.5)
    into_one_level(driver, '我的任务')
    get_element(driver, ('xpath', "//a[contains(text(),'我发起的')]")).click()
    try:
        get_element(driver,
                    ('xpath', "//button[contains(text(),'加班工作流')]")).click()
        get_element(
            driver,
            ('xpath',
             "//*[@id='task-mytask-table']/tbody/tr[1]/td[8]/a")).click()
        assert_element = "//div[@class='tsk-inp col-xs-8' and contains(text(),'%s')]" % remark
        assert is_element_present(driver, ('xpath', assert_element))
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
Ejemplo n.º 2
0
def batch_add_workman(driver, file_path, remark):
    # 批量发起请假申请
    """

    :param driver:
    :param file_path: 附件路径
    :param remark: 备注信息
    :return:
    """
    into_one_level(driver, '任务面板')
    sleep(1)
    into_one_level(driver, '发起申请')
    get_element(driver, ('xpath', "//div[contains(text(),'请假申请')]")).click()
    sleep(0.5)
    # 请假类型
    element = "//select[@class='form-control input-sm']/option[%s]" % str(
        random.randint(1, 7))
    get_element(driver, ('xpath', element)).click()
    get_element(driver, ('id', 'leaveAdd')).click()
    sleep(0.5)
    for i in range(0, 3):
        elements = "//tr[@data-index='%s']/td/input" % i
        get_element(driver, ('xpath', elements)).click()
        sleep(0.1)
    get_element(driver, ('xpath', "//a[contains(text(),'确定')]")).click()
    setting_input_time(driver)
    get_elements(driver,
                 ('xpath', "//input[@placeholder='选择日期在合同范围内']"))[0].send_keys(
                     get_now_dates())
    get_elements(driver,
                 ('xpath', "//input[@placeholder='选择日期在合同范围内']"))[1].send_keys(
                     get_tomorrow_dates())
    get_element(
        driver,
        ('xpath', "//textarea[@class='form-control']")).send_keys(remark)
    get_element(
        driver,
        ('xpath', "//div[@id='uploadFile']/input")).send_keys(file_path)
    get_element(driver, ('xpath', "//button[contains(text(),'提交申请')]")).click()
    get_element(driver, ('id', "success")).click()
    sleep(1.5)
    into_one_level(driver, '我的任务')
    get_element(driver, ('xpath', "//a[contains(text(),'我发起的')]")).click()
    try:
        get_element(driver,
                    ('xpath', "//button[contains(text(),'请假工作流')]")).click()
        sleep(3)
        get_element(
            driver,
            ('xpath',
             "//*[@id='task-mytask-table']/tbody/tr[1]/td[8]/a")).click()
        assert_element = "//div[@class='tsk-inp col-xs-8' and contains(text(),'%s')]" % remark
        is_element_present(driver, ('xpath', assert_element))
    except Exception as e:
        print(e)
        print('工人已经存在请假工作流,无法继续发起')
        bug_photo(driver)
        assert False
Ejemplo n.º 3
0
def to_apply_for_leave(driver, file_path, remark):
    """

    :param driver:
    :param file_path: 附件路径
    :param remark: 备注
    :return:
    """
    into_one_level(driver, '任务面板')
    sleep(1)
    into_one_level(driver, '发起申请')
    get_element(driver, ('xpath', "//div[contains(text(),'请假申请')]")).click()
    sleep(0.5)
    element = "//select[@class='form-control input-sm']/option[%s]" % str(
        random.randint(1, 7))
    get_element(driver, ('xpath', element)).click()
    get_element(driver, ('id', 'leaveAdd')).click()
    get_element(driver, ('id', 'realname')).send_keys('曹永')
    get_element(driver, ('id', 'realsearch')).click()
    sleep(0.5)
    get_element(
        driver,
        ('xpath', "//*[@id='lay-user-f']/tbody/tr/td[1]/input")).click()
    get_element(driver,
                ('xpath', "//button[contains(text(),'添加至已选')]")).click()
    get_element(driver, ('xpath', "//a[contains(text(),'确定')]")).click()
    setting_input_time(driver)
    get_elements(driver,
                 ('xpath', "//input[@placeholder='选择日期在合同范围内']"))[0].send_keys(
                     get_now_dates())
    get_elements(driver,
                 ('xpath', "//input[@placeholder='选择日期在合同范围内']"))[1].send_keys(
                     get_tomorrow_dates())
    get_element(
        driver,
        ('xpath', "//textarea[@class='form-control']")).send_keys(remark)
    get_element(
        driver,
        ('xpath', "//div[@id='uploadFile']/input")).send_keys(file_path)
    get_element(driver, ('xpath', "//button[contains(text(),'提交申请')]")).click()
    get_element(driver, ('id', "success")).click()
    sleep(2)
    into_one_level(driver, '我的任务')
    get_element(driver, ('xpath', "//a[contains(text(),'我发起的')]")).click()
    try:
        get_element(driver,
                    ('xpath', "//button[contains(text(),'请假工作流')]")).click()
        get_element(
            driver,
            ('xpath',
             "//*[@id='task-mytask-table']/tbody/tr[1]/td[8]/a")).click()
        assert_element = "//div[@class='tsk-inp col-xs-8' and contains(text(),'%s')]" % remark
        assert is_element_present(driver, ('xpath', assert_element))
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
Ejemplo n.º 4
0
def change_time_of_attendance(driver, remark, file_path):
    try:
        into_one_level(driver, '任务面板')
        sleep(1)
        into_one_level(driver, '发起申请')
        get_element(driver,
                    ('xpath', "//div[contains(text(),'修改出勤时间')]")).click()
        get_element(driver, ('id', 'leaveAdd')).click()
        sleep(0.5)
        element = "//*[@id='lay-user-f']/tbody/tr"
        for i in range(0, len(get_elements(driver, ('xpath', element))), 2):
            elements = "//tr[@data-index='%s']/td/input" % i
            get_element(driver, ('xpath', elements)).click()
            sleep(0.1)
        get_element(driver,
                    ('xpath', "//button[contains(text(),'添加至已选')]")).click()
        get_element(driver, ('xpath', "//a[contains(text(),'确定')]")).click()
        setting_input_time(driver)
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期不得小于当前日期']")).send_keys(
                get_now_dates())
        get_elements(
            driver,
            ('xpath', "//input[@placeholder='']"))[0].send_keys('08:00')
        get_elements(
            driver,
            ('xpath', "//input[@placeholder='']"))[1].send_keys('17:00')
        get_element(
            driver,
            ('xpath', "//textarea[@class='form-control']")).send_keys(remark)
        get_element(
            driver,
            ('xpath', "//div[@id='uploadFile']/input")).send_keys(file_path)
        get_element(driver,
                    ('xpath', "//button[contains(text(),'提交申请')]")).click()
        get_element(driver, ('id', "success")).click()
        sleep(0.5)
        into_one_level(driver, '我的任务')
        get_element(driver, ('xpath', "//a[contains(text(),'我发起的')]")).click()
        get_element(
            driver,
            ('xpath', "//button[contains(text(),'修改出勤时间工作流')]")).click()
        get_element(
            driver,
            ('xpath',
             "//*[@id='task-mytask-table']/tbody/tr[1]/td[8]/a")).click()
        assert_element = "//div[@class='tsk-inp col-xs-8' and contains(text(),'%s')]" % remark
        assert is_element_present(driver, ('xpath', assert_element))
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
Ejemplo n.º 5
0
def the_contract_comes_into_effect(driver, switch):
    #   合同生效
    if switch:
        # 选择城市
        sub_select_city_choice(driver)
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期不得晚于当前日期']")).send_keys(
                get_now_dates())
        conditions_element = "//div[@id='sub_contract']/form/div[8]/div[2]/div[3]/div/select/option[%d]" % random.randint(
            2, 3)
        get_element(driver, ('xpath', conditions_element)).click()
    else:
        pass
Ejemplo n.º 6
0
def initiate_artifacts(driver, file_path):
    # 工件审核
    into_one_level(driver, '任务面板')
    sleep(1)
    into_one_level(driver, '发起申请')
    get_element(driver, ('xpath', "//div[contains(text(),'工件审核')]")).click()
    sleep(0.5)
    get_elements(
        driver,
        ('xpath', "//i[@class='glyphicon glyphicon-plus']"))[0].click()
    input_element = "//*[@id='lay-user-f']/tbody/tr[1]/td[1]/input"
    get_element(driver, ('xpath', input_element)).click()
    get_element(driver, ('xpath', "//a[contains(text(),'确定')]")).click()
    element = "//select[@class='form-control input-sm']/option[2]"
    try:
        get_element(driver, ('xpath', element)).click()
    except Exception as e:
        print(e)
        assert False, "没有此工件"
    get_element(driver, ('xpath', "//input[@placeholder='数量为整数']")).send_keys(
        random.randint(1, 9))
    setting_input_time(driver)
    get_element(driver,
                ('xpath', "//input[@placeholder='选择日期需小于或等于今天']")).send_keys(
                    get_now_dates())
    get_elements(
        driver,
        ('xpath', "//div[@class='col-sm-6']/input[1]"))[2].send_keys('优秀')
    get_element(driver,
                ('xpath', "//input[@data-min-message='输入值不能小于0']")).send_keys(
                    random.randint(1, 100))
    get_element(
        driver,
        ('xpath', "//div[@id='uploadFile']/input")).send_keys(file_path)
    get_element(driver, ('xpath', "//button[contains(text(),'提交申请')]")).click()
    sleep(0.5)
    get_element(driver, ('id', 'success')).click()
    sleep(1)
    try:
        '成功' == get_element(
            driver,
            ('xpath',
             "//div[@class='layui-layer-content layui-layer-padding']")).text
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
Ejemplo n.º 7
0
def attendance_instant_add(ws_driver, result, card_num):
    attendance_parameter = {
        "command": {
            "path": "project.consumer.AttendanceInstantAdd"
        },
        "parameters": {
            "attendance_instant_form": [{
                "card_num": card_num,
                "type": random.randint(1, 2),
                "day": get_now_dates(),
                "time": get_now_time()
            }],
            "sid":
            result['data']['sid']
        }
    }
    result = ws_driver.web_socket_request(attendance_parameter)
    assert result['code'] == 1000
    assert result['msg'] == '成功:操作'
Ejemplo n.º 8
0
 def test_run_all_case(self):
     print(self.case_path)
     discover = unittest.defaultTestLoader.discover(self.case_path, "test_*", top_level_dir=None)
     print(discover)
     result = BeautifulReport(discover)
     a = result.report(filename='测试报告', description='执行测试报告', log_path=self.report_path)
     if a is None:
         config = ConfigParser()
         config.read(setting_path())
         mail_to_list = {config.get('mail', 'to_list'), config.get('mail', 'to_list1'),
                         config.get('mail', 'to_list2')}  # 收件人(列表)
         # mail_to_list = [config.get('mail', 'to_list')]  # 收件人(列表)
         mail_title = str(get_now_dates()) + 'WebUI测试报告'
         for i in range(1):  # 发送1封,填写1 就是list中的人,每人发一封
             if send_mail(mail_to_list, mail_title, 'Please check the attachment.', config.get('mail', 'user'),
                          config.get('mail', 'pass')):  # 邮件主题和邮件内容
                 print("done!")
             else:
                 print("failed!")
     else:
         pass
Ejemplo n.º 9
0
def general_contract(driver, contract_name, contract_awarding, contracting,
                     project_name):
    """

    :param driver:
    :param contract_name:合同名称
    :param contract_awarding: 发包方
    :param contracting: 总承包方
    :param project_name: 工程名称
    :return:
    """
    driver.implicitly_wait(5)
    try:
        into_one_level(driver, '任务面板')
        sleep(0.5)
        into_two_level(driver, '发起申请')
        # WebDriverWait(driver, 10).until(lambda x: x.find_element_by_xpath("//div[contains(text(),'新建总包合同')")).click()
        driver.find_element_by_xpath(
            "//div[contains(text(),'新建总包合同')]").click()
        # get_element(driver, ('XPATH', "//div[contains(text(),'新建总包合同'")).click()
        sleep(0.5)
        driver.find_element_by_xpath(
            "//input[@placeholder='请输入合同名称']").send_keys(contract_name)
        sleep(0.5)
        # 发包方
        get_element(driver, ('id', 'select2-fbfName-container')).click()
        get_element(
            driver,
            ('xpath', "//input[@type='search']")).send_keys(contract_awarding)
        sleep(0.5)
        get_element(driver,
                    ('xpath', "//input[@type='search']")).send_keys(Keys.ENTER)
        # 承包方
        get_element(driver, ('id', "select2-cbfName-container")).click()
        driver.find_element_by_xpath("//input[@type='search']").send_keys(
            contracting)
        sleep(0.5)
        driver.find_element_by_xpath("//input[@type='search']").send_keys(
            Keys.ENTER)
        driver.find_element_by_xpath(
            "//input[@placeholder='请输入工程名称']").send_keys(project_name)
        select_city(driver)
        driver.find_element_by_xpath(
            "//input[@placeholder='请输入工程详细地址']").send_keys('南京路168号')
        # 工程属性
        get_elements(driver,
                     ('xpath', "//input[@type='checkbox']"))[random.randint(
                         0, 3)].click()
        driver.find_element_by_xpath("//input[@placeholder='类目']").send_keys(
            '建筑')
        driver.find_element_by_xpath("//input[@placeholder='年份']").click()
        driver.find_element_by_xpath("//span[@class='year active']").click()
        driver.find_element_by_xpath("//input[@placeholder='编号']").send_keys(
            random.randint(10000, 99999))
        project_information = '土方开挖,土方回填,钢筋工程,模板工程,混凝土工程,砌体工程,装饰装修工程等'
        contract_scope = "售楼部的美女,工程部的汉,项目部的光棍满街转!财务的花,预算的草,施工队的和尚到处跑!食堂的饭,宿舍的床,搞工程的女人吓死郎!"
        driver.find_elements_by_xpath(
            "//textarea[@placeholder='选填']")[0].send_keys(project_information)
        driver.find_elements_by_xpath(
            "//textarea[@placeholder='选填']")[1].send_keys(contract_scope)
        setting_input_time(driver)
        driver.find_element_by_xpath(
            "//input[@placeholder='选择日期不得晚于计划竣工日期']").send_keys(
                get_pass_dates(2))
        driver.find_element_by_xpath(
            "//input[@placeholder='选择日期不得早于今天']").send_keys(
                get_future_date(300))
        driver.find_elements_by_xpath(
            "//input[@placeholder='选填']")[0].send_keys(random.randint(
                100, 200))
        driver.find_elements_by_xpath(
            "//input[@placeholder='必填']")[0].send_keys(
                random.randint(100000, 999999))
        driver.find_element_by_xpath(
            "//input[@placeholder='请输入项目经理姓名']").send_keys("暂无")
        driver.find_element_by_xpath(
            "//input[@placeholder='选择日期不得晚于当前日期']").send_keys(get_now_dates())
        select_city_choice(driver)
        driver.find_elements_by_xpath(
            "//input[@placeholder='选填']")[1].send_keys("南京路256号")
        driver.find_element_by_xpath("//button[@type='submit']").click()
        print(get_element(driver, ('id', "LAY_demo2")).text)
        assert get_element(driver, ('id', "LAY_demo2")).text == "成功"
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
Ejemplo n.º 10
0
# -*- coding: utf-8 -*-
import getpass
import sys
sys_path = r'C:\Users\%s\Desktop\builder_webui_autotest' % (str(
    getpass.getuser()))
sys.path.append(sys_path)
# sys.path.append(r'C:\Users\CY\Desktop\builder_webui_autotest')
import random
import pymysql.cursors
import time
from Page.random_time import Type
from Page.web.get_now_time import get_pass_dates, get_now_dates

fmt = '%Y-%m-%d %H:%M:%S'  # 格式化时间
begin_time = get_now_dates() + " 00:00:01"  # 当前日期初始时间
end_time = get_now_dates() + " 23:59:59"  # 当前日期结束时间
now_time = time.strftime(fmt, time.localtime())  # 当前时间
# 将其转换为时间数组
timeArray_begin = time.strptime(begin_time, fmt)
# timeArray_end = time.strptime(end_time, fmt)
# timeArray_now = time.strptime(now_time, fmt)

# 转换为时间戳:
timeStamp_begin = int(time.mktime(timeArray_begin))
# timeStamp_end = int(time.mktime(timeArray_end))
# timeStamp_now = int(time.mktime(timeArray_now))
# timeStamp_end - timeStamp_now # 不能大于当前时间戳
# one = timeStamp_begin + random.randint(28800, 34200)
# two = timeStamp_begin + random.randint(41400, 43200)
# three = timeStamp_begin + random.randint(46800, 48600)
# four = timeStamp_begin + random.randint(64800, 79200)
Ejemplo n.º 11
0
def foo(name, hh, age=None):
    print("%s is name time is %s age = %s %s" %
          (name, get_now_dates(), age, hh))
Ejemplo n.º 12
0
def request_for_overtime(driver, remark, file_path):
    """
    # 加班申请
    :param driver:
    :param remark:备注信息
    :param file_path: 附件路径
    :return:
    """
    into_one_level(driver, '任务面板')
    sleep(1)
    into_one_level(driver, '发起申请')
    get_element(driver, ('xpath', "//div[contains(text(),'加班申请')]")).click()
    get_element(driver, ('id', 'leaveAdd')).click()
    sleep(0.5)
    element = "//*[@id='lay-user-f']/tbody/tr"
    for i in range(0, len(get_elements(driver, ('xpath', element))), 2):
        elements = "//tr[@data-index='%s']/td/input" % i
        get_element(driver, ('xpath', elements)).click()
        sleep(0.1)
    get_element(driver, ('xpath', "//a[contains(text(),'确定')]")).click()
    setting_input_time(driver)
    get_elements(driver,
                 ('xpath', "//div[@class='col-sm-6']/input"))[0].send_keys(
                     get_now_dates())
    get_element(
        driver,
        ('xpath', "//input[@placeholder='选择时间需小于加班结束时间']")).send_keys('20:00')
    get_element(
        driver,
        ('xpath', "//input[@placeholder='选择时间需大于加班开始时间']")).send_keys('21:00')
    get_element(
        driver,
        ('xpath', "//input[@placeholder='请输入加班费, 单位:元/小时']")).send_keys(
            random.randint(20, 50))
    get_element(
        driver,
        ('xpath', "//textarea[@class='form-control']")).send_keys(remark)
    get_element(
        driver,
        ('xpath', "//div[@id='uploadFile']/input")).send_keys(file_path)
    get_element(driver, ('xpath', "//button[contains(text(),'提交申请')]")).click()
    get_element(driver, ('id', "success")).click()
    sleep(0.5)
    i = 1
    while 1:
        if is_element_present_3s(driver,
                                 ('xpath', "//div[contains(text(),'创建失败')]")):
            sleep(1)
            get_element(driver, (
                'xpath',
                "//a[@class='layui-layer-ico layui-layer-close layui-layer-close1']"
            )).click()
            sleep(0.2)
            get_elements(
                driver,
                ('xpath', "//div[@class='col-sm-6']/input"))[0].clear()
            get_elements(
                driver,
                ('xpath', "//div[@class='col-sm-6']/input"))[0].send_keys(
                    get_pass_dates(i))
            i += 1
            get_element(
                driver,
                ('xpath', "//button[contains(text(),'提交申请')]")).click()
            get_element(driver, ('id', "success")).click()
            sleep(0.5)
            if is_element_present_3s(driver, ('id', "LAY_demo2")):
                break
        else:
            break
    into_one_level(driver, '我的任务')
    get_element(driver, ('xpath', "//a[contains(text(),'我发起的')]")).click()
    try:
        sleep(0.5)
        get_element(driver,
                    ('xpath', "//button[contains(text(),'加班工作流')]")).click()
        get_element(
            driver,
            ('xpath',
             "//*[@id='task-mytask-table']/tbody/tr[1]/td[8]/a")).click()
        assert_element = "//div[@class='tsk-inp col-xs-8' and contains(text(),'%s')]" % remark
        assert is_element_present(driver, ('xpath', assert_element))
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
def new_payroll(driver, payroll_name, money):
    # 薪资管理
    try:
        into_one_level(driver, '工程面板')
        sleep(1)
        into_two_level(driver, '薪资管理')
        get_element(driver,
                    ('xpath', "//button[@class='btn btn-primary']")).click()
        # 工程名称
        get_element(driver,
                    ('xpath', "//select[@id='kkkk']/option[2]")).click()
        # 输入工资月份
        get_now_dates()
        setting_input_time(driver)
        r = r'\d{4}-\d{2}'
        text = re.findall(r, get_now_dates())
        get_element(
            driver,
            ('xpath',
             "//input[@class='form-control form-n-y-1']")).send_keys(text)
        # 工资单名称
        get_element(driver, ('id', 'createProllNameAll')).clear()
        sleep(0.2)
        get_element(driver,
                    ('id', 'createProllNameAll')).send_keys(payroll_name)
        # 确定按钮
        get_element(
            driver,
            ('xpath',
             "//button[@class='btn btn-primary proll-btn-com']")).click()
        sleep(1)
        # 增加最后一个人
        get_elements(driver, (
            'xpath',
            "//div[@id='createrProll']/div[3]/div[1]/div[2]/div/div[1]/div/div/div/span[2]"
        ))[-1].click()
        sleep(0.5)
        get_element(driver, ('xpath', "//a[contains(text(),'移除')]")).click()
        sleep(1)
        if is_element_present_3s(driver, ('xpath', "//tr[1]/td[7]/input"), 3):
            print("移除失败")
            assert False
        else:
            pass
        get_elements(driver, (
            'xpath',
            "//div[@id='createrProll']/div[3]/div[1]/div[2]/div/div[1]/div/div/div/span[2]"
        ))[-1].click()
        get_element(driver, ('xpath', "//tr[1]/td[5]/a")).click()
        get_elements(driver,
                     ('xpath', "//input[@class='form-control']"))[1].send_keys(
                         get_bank_card_number()[2:18])
        get_element(driver,
                    ('xpath', "//button[contains(text(),'确定')]")).click()
        # 发放金额
        get_element(driver,
                    ('xpath', "//input[@class='pay-money']")).send_keys(money)
        sleep(3)
        get_element(driver,
                    ('xpath', "//button[contains(text(),'保存')]")).click()
        sleep(0.5)
        get_element(
            driver,
            ('xpath',
             "//table[@id='project-proll-release']/tbody/tr[1]/td[7]/a[1]"
             )).click()
        assert is_element_present_3s(driver,
                                     ('xpath', "//input[@class='pay-money']"),
                                     3), "保存失败"
        sleep(3)
        get_element(driver,
                    ('xpath', "//button[contains(text(),'保存')]")).click()
        sleep(0.5)
        get_element(
            driver,
            ('xpath',
             "//table[@id='project-proll-release']/tbody/tr[1]/td[7]/a[2]"
             )).click()
        sleep(3)
        report = os.path.join(test_report_path(), payroll_name + '.xls')
        import win32com.client
        sleep(1)
        excel = win32com.client.gencache.EnsureDispatch('Excel.Application')
        sleep(0.1)
        wb = excel.Workbooks.Open(report)
        sleep(2)
        wb.SaveAs(report + 'x', FileFormat=51)
        wb.Close()
        excel.Application.Quit()
        # 删除旧的xls
        sleep(0.5)
        os.remove(report)
        new_report = os.path.join(test_report_path(), payroll_name + '.xlsx')
        wb1 = load_workbook(filename=new_report)
        sheets = wb1.get_sheet_names()  # 获取所有的表格
        print(sheets)
        sheets_first = sheets[0]  # 获取第一个表
        ws1 = wb1.get_sheet_by_name(sheets_first)
        print(ws1['F2'].value)
        assert money == ws1['F2'].value, "下载文件内容显示不正确"
        os.remove(new_report)
    except Exception as e:
        bug_photo(driver)
        print(e)
        assert False
Ejemplo n.º 14
0
def subcontract(driver, project_name, labor_company, sub_contract, labor_people):
    """
    :param driver: 驱动
    :param project_name: 工程名称
    :param labor_company: 劳务公司
    :param sub_contract: 分包合同名称
    :param labor_people: 劳务经理
    :return:
    """
    try:
        into_one_level(driver, '任务面板')
        sleep(0.5)
        into_two_level(driver, '发起申请')
        driver.find_element_by_xpath("//div[contains(text(),'新建分包合同')]").click()
        driver.find_element_by_xpath("//span[contains(text(),'输入工程名称')]").click()
        get_element(driver, ('xpath', "//input[@class='select2-search__field']")).send_keys(project_name)
        sleep(0.5)
        get_element(driver, ('xpath', "//input[@class='select2-search__field']")).send_keys(Keys.ENTER)
        sleep(1)
        driver.find_element_by_xpath("//span[contains(text(),'输入公司关键字查找')]").click()
        get_element(driver, ('xpath', "//input[@class='select2-search__field']")).send_keys(labor_company)
        sleep(0.5)
        get_element(driver, ('xpath', "//input[@class='select2-search__field']")).send_keys(Keys.ENTER)
        # 分包合同名称
        get_elements(driver, ('xpath', "//input[@placeholder='必填']"))[0].send_keys(sub_contract)
        information = "地基与基础、建筑装饰装修、建筑幕墙、钢结构、机电设备安装、电梯安装、消防设施、建筑防水、防腐保温、园林古建筑、爆破与拆除、电信工程、管道工程等"
        get_element(driver, ('xpath', "//textarea[@placeholder='必填']")).send_keys(information)
        setting_input_time(driver)
        get_element(driver, ('xpath', "//input[@placeholder='选择日期不得晚于计划竣工日期']")).send_keys(get_now_dates())
        get_element(driver, ('xpath', "//input[@placeholder='选择日期不得早于今天']")).send_keys(get_future_date(299))
        driver.find_element_by_xpath("//span[contains(text(),'输入姓名查找')]").click()
        get_element(driver, ('xpath', "//input[@class='select2-search__field']")).send_keys(labor_people)
        sleep(1)
        get_element(driver, ('xpath', "//input[@class='select2-search__field']")).send_keys(Keys.ENTER)
        get_elements(driver, ('xpath', "//input[@placeholder='必填']"))[1].send_keys(random.randint(10000, 99999))
        QA_standard(driver, random.randint(0, 1))
        remuneration_pay(driver, random.randint(0, 1))
        the_contract_comes_into_effect(driver, random.randint(0, 1))
        material_equipment_management(driver, random.randint(0, 1))
        sub_insurance(driver, random.randint(0, 1))
        dispute_resolution(driver, random.randint(0, 1))
        laws_and_regulations(driver, random.randint(0, 1))
        sleep(0.5)
        driver.find_element_by_xpath("//button[contains(text(),'完成')]").click()
        print(get_element(driver, ('id', "LAY_demo2")).text)
        assert get_element(driver, ('id', "LAY_demo2")).text == "成功"
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
Ejemplo n.º 15
0
def workman_contract(driver, people, out_of_date):
    try:
        into_one_level(driver, "任务面板")
        sleep(1)
        into_two_level(driver, "发起申请")
        get_element(driver,
                    ('xpath', "//div[contains(text(),'新建用工合同')]")).click()
        get_element(driver,
                    ('xpath', "//span[contains(text(),'计时工人用工合同')]")).click()
        project_element = "//select[@id='reproject-name']/option[2]"
        get_element(driver, ('xpath', project_element)).click()
        get_element(driver,
                    ('xpath', "//*[@id='reproject-team']/option[2]")).click()
        get_element(driver,
                    ('xpath', "//input[@placeholder='请输入正常出勤单价']")).send_keys(
                        random.randint(10, 99))
        # get_element(driver, ('xpath', "//input[@placeholder='请输入加班单价']")).send_keys(random.randint(10, 99))
        # 选择工种
        work_type = "//*[@id='work-type']/option"
        work_type_element = "//*[@id='work-type']/option[%d]" % random.randint(
            2, len(work_type))
        get_element(driver, ('xpath', work_type_element)).click()
        get_element(driver,
                    ('xpath',
                     "//input[@placeholder='请输入姓名或身份证号查询']")).send_keys(people)
        sleep(0.5)
        workman_element = "//span[contains(text(),'%s')]" % people
        get_element(
            driver,
            ('xpath', "//input[@placeholder='请输入姓名或身份证号查询']")).send_keys(
                Keys.ENTER)
        sleep(1)
        get_elements(driver, ('xpath', workman_element))[0].click()
        information = "按工作时间长短付给你工资的工作。"
        get_element(
            driver,
            ('xpath', "//textarea[@placeholder='选填']")).send_keys(information)
        setting_input_time(driver)
        get_elements(
            driver,
            ('xpath', "//input[@placeholder='必填']"))[0].send_keys('08:00')
        get_elements(
            driver,
            ('xpath', "//input[@placeholder='必填']"))[1].send_keys('18:00')
        if out_of_date:
            get_element(
                driver,
                ('xpath', "//input[@placeholder='小于用工合同结束日期']")).send_keys(
                    get_pass_dates(2))
        else:
            get_element(
                driver,
                ('xpath', "//input[@placeholder='小于用工合同结束日期']")).send_keys(
                    get_now_dates())
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期不得大于分包合同结束日期']")).send_keys(
                get_future_date(180))
        get_elements(
            driver, ('xpath', "//input[@placeholder='必填']"))[2].send_keys('10')
        get_element(driver,
                    ('xpath', "//button[contains(text(),'完成')]")).click()
        assert is_element_present(driver, (
            'xpath',
            "//div[contains(text(),'成功')]/i[@class='layui-layer-ico layui-layer-ico1' ]"
        ))
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False