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
示例#2
0
def logout(driver):
    driver.find_element_by_id("dropdownMenu-set").click()
    driver.find_element_by_xpath("//a[contains(text(),'注销')]").click()
    try:
        is_element_present(driver,
                           ('xpath', "//button[contains(text(),'登录')]"))
    except Exception as e:
        print(e)
        print('注销失败')
        bug_photo(driver)
        return False
示例#3
0
def add_team(driver, team_name):
    into_one_level(driver, '工程面板')
    sleep(1)
    into_two_level(driver, '组织构架')
    # 新增班组按钮
    get_element(driver, ('xpath', "//button[@class='btn btn-primary btn-sm']")).click()
    sleep(1)
    get_elements(driver, ('xpath', "//input[@class='form-control input-sm']"))[2].clear()
    # 输入班组名称
    get_elements(driver, ('xpath', "//input[@class='form-control input-sm']"))[2].send_keys(team_name)
    # 选择班组长
    get_element(driver, ('xpath', "//*[@id='add-team']/form/div[3]/div/select/option[2]")).click()
    # 选择质量员
    get_element(driver, ('xpath', "//*[@id='add-team']/form/div[4]/div/select/option[2]")).click()
    # 确定
    get_element(driver, ('xpath', "//*[@id='add-team']/form/div[5]/div/button[1]")).click()
    sleep(1)
    team_name_element = "//div[contains(text(),'%s')]" % team_name
    if is_element_present(driver, ('xpath', team_name_element)):
        pass
    else:
        bug_photo(driver)
        print('新增班组失败')
        assert False
    # 修改班组
    driver.find_element_by_xpath(team_name_element).click()
    get_element(driver, ('xpath', "//button[contains(text(),'修改班组')]")).click()
    new_team_name = getRandomName()
    sleep(1)
    get_elements(driver, ('xpath', "//input[@class='form-control input-sm']"))[2].clear()
    # 输入新的班组名称
    get_elements(driver, ('xpath', "//input[@class='form-control input-sm']"))[2].send_keys(new_team_name)
    # 确定
    get_element(driver, ('xpath', "//*[@id='add-team']/form/div[5]/div/button[1]")).click()
    sleep(1)
    new_team_name_element = "//div[contains(text(),'%s')]" % new_team_name
    if is_element_present(driver, ('xpath', new_team_name_element)):
        pass
    else:
        bug_photo(driver)
        print('新增班组失败')
        assert False
    get_element(driver, ('xpath', new_team_name_element)).click()
    get_element(driver, ('xpath', "//button[contains(text(),'删除班组')]")).click()
    get_element(driver, ('xpath', "//a[@class='layui-layer-btn0']")).click()
    sleep(1)
    if is_element_present(driver, ('xpath', team_name_element)):
        bug_photo(driver)
        print('新增班组失败')
        assert False
    else:
        pass
示例#4
0
def project_delay(driver):
    try:
        into_one_level(driver, '工程面板')
        sleep(1)
        get_elements(driver, ('xpath', "//a[contains(text(),'设置')]"))[1].click()
        sleep(0.5)
        get_element(driver, ('xpath', "//button[contains(text(),'项目延期')]")).click()
        sleep(1)
        num = 300
        setting_input_time(driver)
        get_element(driver, ('xpath', "//input[@placeholder='选择日期需大于原总包合同结束时间']")).send_keys(get_future_date(num))
        get_element(driver, ('xpath', "//button[contains(text(),'提交申请')]")).click()
        sleep(0.5)
        get_element(driver, ('id', 'success')).click()
        while 1:
            if is_element_present(driver, ('xpath', "//div[contains(text(),'延期时间必须大于总包合同的竣工日期')]")):
                sleep(0.1)
                get_element(driver, ('xpath', "//span[@class='layui-layer-setwin']/a")).click()
                get_element(driver, ('xpath', "//input[@placeholder='选择日期需大于原总包合同结束时间']")).clear()
                num += 20
                get_element(driver, ('xpath', "//input[@placeholder='选择日期需大于原总包合同结束时间']")).send_keys(get_future_date(num))
                get_element(driver, ('xpath', "//button[contains(text(),'提交申请')]")).click()
                sleep(0.5)
                get_element(driver, ('id', 'success')).click()
            else:
                break
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
示例#5
0
def change_workman_contract_date(driver):
    try:
        now_date = get_future_date(90)
        into_one_level(driver, "任务面板")
        sleep(1)
        into_two_level(driver, "发起申请")
        get_element(driver,
                    ('xpath', "//div[contains(text(),'用工合同期限修改')]")).click()
        get_elements(
            driver,
            ('xpath', "//input[@class='form-control input-sm']"))[0].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', "//a[contains(text(),'确定')]")).click()
        sleep(0.5)
        setting_input_time(driver)
        get_element(
            driver,
            ('xpath', "//input[@placeholder='请选择日期']")).send_keys(now_date)
        get_element(driver,
                    ('xpath', "//button[contains(text(),'提交申请')]")).click()
        get_element(driver, ('id', "success")).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
示例#6
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
def verify_real_name(driver, name, identity, path1, path2):
    """

    :param driver:
    :param name: 姓名
    :param identity: 身份证号
    :param path1: 身份证正面路径
    :param path2:身份证反面路径
    :return:
    """
    sleep(1)
    get_element(driver, ('id', 'dropdownMenu-set')).click()
    if is_element_present_3s(driver, ('xpath', "//a[contains(text(),'实名认证')]"),
                             2):
        sleep(1)
        get_element(driver, ('xpath', "//a[contains(text(),'实名认证')]")).click()
    else:
        pass
    if is_element_present(
            driver, ('xpath', "//button[@class='zdy-btn-blue reg-btn']")):
        sleep(4)
        get_element(
            driver,
            ('xpath', "//button[@class='zdy-btn-blue reg-btn']")).click()
        get_element(driver,
                    ('xpath', "//input[@placeholder='真实姓名(必须填写)']")).clear()
        get_element(
            driver,
            ('xpath', "//input[@placeholder='真实姓名(必须填写)']")).send_keys(name)
        get_element(driver,
                    ('xpath',
                     "//input[@placeholder='身份证号(必须填写)']")).send_keys(identity)
        get_element(driver, ('id', "file1")).send_keys(path1)
        get_element(driver, ('id', "file2")).send_keys(path2)
        driver.find_element_by_xpath(
            "//button[contains(text(),'完成认证')]").click()
        sleep(5)
        if is_element_present(driver,
                              ('xpath', "//a[contains(text(),'个人面板')]")):
            assert get_element(driver,
                               ('id', 'dropdownMenu-set')).text == name, "认证失败"
        else:
            bug_photo(driver)
            assert False, "没跳转到实名认证后的页面"
    else:
        print("该用户已经实名认证")
def work_experience(driver):
    company_name = getCompanyName()
    project_name = company_name[2:-4] + '工程'
    start_date = get_pass_dates(random.randint(300, 400))
    end_date = get_pass_dates(random.randint(100, 299))
    information = "上士闻道勤而行之;中士闻道若存若亡;下士闻道大笑之,不笑不足以为道。执行是一日复一日的"
    try:
        if is_element_present(driver,
                              ('xpath', "//i[@data-target='#mo-work-add']")):
            get_element(driver,
                        ('xpath', "//i[@data-target='#mo-work-add']")).click()
        else:
            get_element(driver,
                        ('xpath', "//div[@data-target='#mo-work']")).click()
            get_element(driver, (
                'xpath',
                "//div[@data-target='#mo-work-add' and contains(text(),'添加工作经验')]"
            )).click()
        get_elements(
            driver, ('xpath', "//div[@class='col-sm-6']/input[@placeholder='']"
                     ))[1].send_keys(company_name)
        sleep(1)
        setting_input_time(driver)
        get_elements(
            driver,
            ('xpath', "//input[@data-max-time='']"))[2].send_keys(start_date)
        end_date_element = "//input[@data-min-time='%s']" % start_date
        get_element(driver, ('xpath', end_date_element)).send_keys(end_date)
        get_elements(
            driver, ('xpath', "//div[@class='col-sm-6']/input[@placeholder='']"
                     ))[2].send_keys(project_name)
        get_element(driver,
                    ('xpath',
                     "//div[@class='col-sm-6']/textarea[@class='form-control']"
                     )).send_keys(information)
        get_elements(driver,
                     ('xpath', "//button[contains(text(),'完成')]"))[1].click()
        sleep(0.5)
        element = "//h4[contains(text(),'%s')]" % company_name

        assert is_element_present(driver, ('xpath', element))
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
示例#9
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
示例#10
0
def camera_management(driver):
    into_two_level(driver, '设备管理')
    driver.find_element_by_xpath("//a[contains(text(),'摄像头')]").click()
    num = random_str(4) + str(random.randint(1000000, 9999999))
    random_ip = "rtsp://" + "192.168.1.%d" % random.randint(1, 255)
    # 增加摄像头
    driver.find_elements_by_xpath("//button[contains(text(),'新增')]")[3].click()
    get_element(driver,
                ('xpath', "//input[@placeholder='请输入摄像头设备号']")).send_keys(num)
    get_element(driver,
                ('xpath', "//option[contains(text(),'253112612')]")).click()
    camera_element = "//*[@id='sxt']/form/div[4]/select/option[%d]" % random.randint(
        1, 2)
    get_element(driver, ('xpath', camera_element)).click()
    get_element(
        driver,
        ('xpath', "//input[@placeholder='请输入rtsp地址']")).send_keys(random_ip)
    driver.find_element_by_xpath("//button[contains(text(),'确认')]").click()
    get_elements(
        driver,
        ('xpath', "//input[@placeholder='请输入设备号筛选']"))[1].send_keys(num)
    get_elements(driver,
                 ('xpath', "//button[contains(text(),'筛选')]"))[3].click()
    assert str(num) == get_element(
        driver,
        ('xpath',
         "//*[@id='sxt-table']/tbody/tr[1]/td[2]")).text, "不在location中,新增失败"
    # 更新摄像头
    get_element(driver,
                ('xpath', "//*[@id='sxt-table']/tbody/tr/td[6]/a")).click()
    num1 = random_str(4) + str(random.randint(1000000, 9999999))
    get_element(driver, ('xpath', "//input[@placeholder='请输入摄像头设备号']")).clear()
    get_element(driver,
                ('xpath', "//input[@placeholder='请输入摄像头设备号']")).send_keys(num1)
    driver.find_elements_by_xpath("//button[contains(text(),'确认')]")[1].click()
    get_elements(driver,
                 ('xpath', "//input[@placeholder='请输入设备号筛选']"))[1].clear()
    get_elements(
        driver,
        ('xpath', "//input[@placeholder='请输入设备号筛选']"))[1].send_keys(num1)
    get_elements(driver,
                 ('xpath', "//button[contains(text(),'筛选')]"))[3].click()
    assert str(num1) == get_element(
        driver,
        ('xpath',
         "//*[@id='sxt-table']/tbody/tr[1]/td[2]")).text, "不在location中,新增失败"
    # 删除闸机
    get_element(driver,
                ('xpath', "//*[@id='sxt-table']/tbody/tr/td[1]")).click()
    get_elements(driver,
                 ('xpath', "//button[contains(text(),'删除')]"))[3].click()
    get_elements(driver,
                 ('xpath', "//button[contains(text(),'确认')]"))[2].click()
    get_element(driver, ('id', "success")).click()
    assert is_element_present(driver,
                              ('xpath', "//td[@colspan='6']")), "删除闸机失败"
def add_education_experience(driver):
    sleep(3)
    try:
        if is_element_present(driver,
                              ('xpath', "//i[@data-target='#mo-edu-add']")):
            get_element(driver,
                        ('xpath', "//i[@data-target='#mo-edu-add']")).click()
        else:
            get_element(driver,
                        ('xpath', "//div[@data-target='#mo-edu']")).click()
            get_element(driver, (
                'xpath',
                "//div[@data-target='#mo-edu-add' and contains(text(),'添加教育经历')]"
            )).click()
        work_type = "//div[1]/div[1]/select[@class='form-control']/option[%s]" % str(
            random.randint(1, 10))
        get_elements(driver, ('xpath', work_type))[1].click()
        get_element(driver,
                    ('xpath', "//input[@placeholder='专业']")).send_keys('建筑')
        start_dates = get_pass_dates(random.randint(200, 300))
        end_dates = get_pass_dates(random.randint(50, 199))
        setting_input_time(driver)
        get_element(driver, (
            'xpath',
            "//input[@placeholder='' and @class='form-control input-sm form-date val-start-date']"
        )).send_keys(start_dates)
        get_elements(driver, (
            'xpath',
            "//input[@placeholder='' and @class='form-control input-sm form-date']"
        ))[-1].send_keys(end_dates)
        school_name = getCompanyName()[2:-4] + '学校'
        get_element(
            driver,
            ('xpath', "//input[@placeholder='学校名称']")).send_keys(school_name)
        get_elements(driver,
                     ('xpath', "//button[contains(text(),'完成')]"))[2].click()
        title = school_name + '(' + start_dates + '——' + end_dates + ')'
        element = "//h4[contains(text(),'%s')]" % title
        assert is_element_present(driver, ('xpath', element))
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
示例#12
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
示例#13
0
def set_role(driver, num):
    # 跳转到最后一页
    if is_element_present(driver, ('xpath', "//a[contains(text(),'‹')]")):
        driver.find_element_by_xpath("//a[contains(text(),'‹')]").click()
    # 选择最后一个人
    driver.find_elements_by_xpath("//input[@name='btSelectItem']")[-1].click()
    # 点击角色设置
    driver.find_element_by_xpath("//button[contains(text(),'角色设置')]").click()
    # 选择需要设置的角色
    # num 1 代表管理层;2 企业运维;3 项目经理;4 劳务经理;5 班组长;6 质量员
    role_element = ".//*[@id='lay-role-set']/div[2]/div[2]/select/option[%d]" % num
    driver.find_element_by_xpath(role_element).click()
    driver.find_element_by_xpath("//a[contains(text(),'确定')]").click()
def brake_machine(driver):
    into_two_level(driver, '设备管理')
    driver.find_element_by_xpath("//a[contains(text(),'闸机')]").click()
    num = random_str(4) + str(random.randint(1000000, 9999999))
    random_ip = "192.168.1.%d" % random.randint(1, 255)
    # 增加闸机
    driver.find_elements_by_xpath("//button[contains(text(),'新增')]")[2].click()
    get_element(driver,
                ('xpath', "//input[@placeholder='请输入闸机设备号']")).send_keys(num)
    get_element(driver,
                ('xpath', "//option[contains(text(),'hpface联调闸机')]")).click()
    get_element(
        driver,
        ('xpath', "//input[@placeholder='请输入闸机IP']")).send_keys(random_ip)
    driver.find_element_by_xpath("//button[contains(text(),'确认')]").click()
    get_element(driver,
                ('xpath', "//input[@placeholder='请输入设备号筛选']")).send_keys(num)
    get_elements(driver,
                 ('xpath', "//button[contains(text(),'筛选')]"))[2].click()
    assert str(num) == get_element(
        driver,
        ('xpath',
         "//*[@id='zj-table']/tbody/tr[1]/td[2]")).text, "不在location中,新增失败"
    # 更新闸机
    get_element(driver,
                ('xpath', "//*[@id='zj-table']/tbody/tr/td[5]/a")).click()
    num1 = random_str(4) + str(random.randint(1000000, 9999999))
    get_element(driver, ('xpath', "//input[@placeholder='请输入闸机号码']")).clear()
    get_element(driver,
                ('xpath', "//input[@placeholder='请输入闸机号码']")).send_keys(num1)
    driver.find_elements_by_xpath("//button[contains(text(),'确认')]")[1].click()
    get_element(driver, ('xpath', "//input[@placeholder='请输入设备号筛选']")).clear()
    get_element(driver,
                ('xpath', "//input[@placeholder='请输入设备号筛选']")).send_keys(num1)
    get_elements(driver,
                 ('xpath', "//button[contains(text(),'筛选')]"))[2].click()
    assert str(num1) == get_element(
        driver,
        ('xpath',
         "//*[@id='zj-table']/tbody/tr[1]/td[2]")).text, "不在location中,新增失败"
    # 删除闸机
    get_element(driver,
                ('xpath', "//*[@id='zj-table']/tbody/tr/td[1]")).click()
    get_elements(driver,
                 ('xpath', "//button[contains(text(),'删除')]"))[2].click()
    get_elements(driver,
                 ('xpath', "//button[contains(text(),'确认')]"))[2].click()
    get_element(driver, ('id', "success")).click()
    assert is_element_present(driver,
                              ('xpath', "//td[@colspan='5']")), "删除闸机失败"
def personal_certificate(driver, file_path):
    sleep(3)
    try:
        if is_element_present(driver,
                              ('xpath', "//i[@data-target='#mo-book-add']")):
            get_element(driver,
                        ('xpath', "//i[@data-target='#mo-book-add']")).click()
        else:
            get_element(driver,
                        ('xpath', "//div[@data-target='#mo-book']")).click()
            get_element(driver, (
                'xpath',
                "//div[@data-target='#mo-book-add' and contains(text(),'添加证书')]"
            )).click()
        work_type = "//div[1]/div[1]/select[@class='form-control']/option[%s]" % str(
            random.randint(2, 39))
        get_elements(driver, ('xpath', work_type))[0].click()
        certificate_number = random_str() + get_org_no()[:-3]
        get_element(
            driver,
            ('xpath',
             "//input[@placeholder='请输入工种证书号']")).send_keys(certificate_number)
        level_education = "//div[3]/div[1]/select[@class='form-control']/option[%s]" % str(
            random.randint(2, 11))
        get_elements(driver, ('xpath', level_education))[0].click()
        setting_input_time(driver)
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期不得晚于当前日期']")).send_keys(
                get_pass_dates(random.randint(200, 400)))
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期大于等于领证日期']")).send_keys(
                get_pass_dates(random.randint(50, 199)))
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期大于使用开始日期']")).send_keys(
                get_tomorrow_dates())
        get_element(
            driver,
            ('xpath',
             "//div[7]/div[1][@class='col-sm-6']/input")).send_keys('政府')
        if len(get_elements(driver, ('xpath', "//input[@name='file']"))) == 2:
            get_elements(
                driver,
                ('xpath', "//input[@name='file']"))[0].send_keys(file_path)
            get_elements(
                driver,
                ('xpath', "//input[@name='file']"))[1].send_keys(file_path)
        else:
            get_elements(
                driver,
                ('xpath', "//input[@name='file']"))[-2].send_keys(file_path)
            get_elements(
                driver,
                ('xpath', "//input[@name='file']"))[-1].send_keys(file_path)
        # 利用js 获取当前元素位置
        driver.execute_script(
            "arguments[0].scrollIntoView();",
            get_element(driver, ('xpath', "//button[contains(text(),'提交')]")))
        sleep(0.5)
        get_element(driver,
                    ('xpath', "//button[contains(text(),'提交')]")).click()
        element = "//h4[contains(text(),'%s')]" % certificate_number
        assert is_element_present(driver, ('xpath', element)), "添加证书失败"
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
示例#16
0
def workman_contract_piece(driver, artifact_name, people):
    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_elements(
            driver, ('xpath',
                     "//input[@placeholder='必填']"))[0].send_keys(artifact_name)
        address = ['上海', '北京', '广州', '杭州', '无锡', '苏州', '徐州']
        get_elements(driver,
                     ('xpath', "//input[@placeholder='必填']"))[1].send_keys(
                         address[random.randint(0, len(address))])
        get_elements(driver,
                     ('xpath', "//input[@placeholder='必填']"))[2].send_keys(
                         random.randint(88, 188))
        get_elements(driver,
                     ('xpath', "//input[@placeholder='必填']"))[3].send_keys(
                         random.randint(199, 399))
        get_element(
            driver,
            ('xpath', "//textarea[@placeholder='选填']")).send_keys('优秀的完成')
        # 选择工种
        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()
        setting_input_time(driver)
        get_element(driver,
                    ('id', 'select2-piece-worker-Name-container')).click()
        get_element(
            driver,
            ('xpath',
             "//input[@class='select2-search__field']")).send_keys(people)
        sleep(0.5)
        get_element(
            driver,
            ('xpath', "//input[@class='select2-search__field']")).send_keys(
                Keys.ENTER)
        get_elements(
            driver,
            ('xpath', "//input[@placeholder='必填']"))[4].send_keys('08:30')
        get_elements(
            driver,
            ('xpath', "//input[@placeholder='必填']"))[5].send_keys('17:30')
        get_element(
            driver,
            ('xpath', "//input[@placeholder='小于用工合同结束日期' ]")).send_keys(
                get_pass_dates(2))
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期不得大于分包合同结束日期']")).send_keys(
                get_future_date(180))
        get_elements(driver,
                     ('xpath', "//input[@placeholder='必填']"))[6].send_keys(
                         random.randint(1, 30))
        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
示例#17
0
def workman_contract(driver, people):
    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')
        get_element(driver,
                    ('xpath', "//input[@placeholder='小于用工合同结束日期']")).send_keys(
                        get_pass_dates(2))
        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
示例#18
0
def edit_workers_contract(driver, workers_name, photo_path):
    try:
        into_one_level(driver, '工程面板')
        sleep(0.5)
        into_two_level(driver, '工人管理')
        # 查询工人姓名
        get_element(
            driver,
            ('xpath',
             "//div[@id='table-toolbar']/input")).send_keys(workers_name)
        # 搜索
        get_element(driver,
                    ('xpath', "//div[@id='table-toolbar']/button")).click()
        get_element(driver, (
            'xpath',
            "//a[contains(text(),'合同详情') and @class='table-a-link']")).click()
        sleep(0.5)
        get_element(driver,
                    ('xpath', "//button[contains(text(),'内容编辑')]")).click()
        if is_element_present_3s(
                driver, ('xpath', "//input[@placeholder='请输入正常出勤单价']"), 3):
            pass
        else:
            driver.refresh()
            if is_element_present(
                    driver, ('xpath', "//button[contains(text(),'内容编辑')]")):
                sleep(1)
                get_element(
                    driver,
                    ('xpath', "//button[contains(text(),'内容编辑')]")).click()
            else:
                pass
        sleep(0.5)
        get_element(driver,
                    ('xpath', "//input[@placeholder='请输入正常出勤单价']")).clear()
        sleep(0.5)
        new_unit_price = random.randint(1, 200)
        get_element(
            driver,
            ('xpath',
             "//input[@placeholder='请输入正常出勤单价']")).send_keys(new_unit_price)
        sleep(0.1)
        new_overtime_work = random.randint(1, 200)
        get_element(driver,
                    ('xpath', "//input[@placeholder='请输入加班单价']")).clear()
        sleep(1)
        get_element(
            driver,
            ('xpath',
             "//input[@placeholder='请输入加班单价']")).send_keys(new_overtime_work)
        get_element(driver, ('xpath', "//textarea[@placeholder='选填']")).clear()
        assert_information = '验证数据'
        get_element(
            driver,
            ('xpath',
             "//textarea[@placeholder='选填']")).send_keys(assert_information)
        setting_input_time(driver)
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期不得大于分包合同结束日期']")).clear()
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期不得大于分包合同结束日期']")).send_keys(
                get_future_date(150))
        get_element(
            driver,
            ('xpath',
             "//div[@id='uploadFile2']/input[1]")).send_keys(photo_path)
        sleep(3)
        get_element(driver,
                    ('xpath', "//button[contains(text(),'完成')]")).click()
        assert is_element_present(driver, ('id', 'LAY_demo2'))
        sleep(7)
        until_price = "//span[contains(text(),'单价:%s元/小时')]" % new_unit_price
        print(until_price)
        assert is_element_present(driver, ('xpath', until_price)), "工人单价未更新"
        over_time = "//span[contains(text(),'加班工资:%s元/小时')]" % new_overtime_work
        assert is_element_present(driver, ('xpath', over_time)), "加班工资未更新"
        workers_information = "//span[contains(text(),'内容:%s')]" % assert_information
        assert is_element_present(driver,
                                  ('xpath', workers_information)), "工作内容未更新"
        workers_contract_time = "//div[@id='laborContract']/p[contains(text(),'1.用工日期从%s进场始至%s日止')]" % (
            str(get_pass_dates(2)), str(get_future_date(150)))
        assert is_element_present(
            driver, ('xpath', workers_contract_time)), "工人合同时间未更新"
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
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
示例#20
0
def attendance_machine(driver, people):
    global name1_text
    into_two_level(driver, '设备管理')
    driver.find_element_by_xpath("//a[contains(text(),'考勤卡')]").click()
    name_text = []
    num = random.randint(100000, 999999)
    driver.find_element_by_xpath("//button[contains(text(),'新增')]").click()
    get_element(
        driver,
        ('xpath', "//input[@placeholder='请输入4-10位考勤卡号']")).send_keys(num)
    get_element(
        driver,
        ('xpath', "//span[@class='select2-selection__placeholder']")).click()
    get_element(
        driver,
        ('xpath', "//input[@class='select2-search__field']")).send_keys(people)
    sleep(0.5)
    get_element(
        driver,
        ('xpath', "//input[@class='select2-search__field']")).send_keys(
            Keys.ENTER)
    driver.find_element_by_xpath("//button[contains(text(),'确定')]").click()
    if is_element_present(driver,
                          ('xpath', "//div[contains(text(),'该用户已绑定考勤卡')]")):
        # 解绑考勤卡
        sleep(7)
        get_element(driver,
                    ('xpath',
                     "//input[@placeholder='请输入考勤卡号或姓名筛选']")).send_keys(people)
        get_elements(driver,
                     ('xpath', "//button[contains(text(),'筛选')]"))[0].click()
        for i in range(
                len(
                    get_elements(driver,
                                 ('xpath', "//*[@id='kqk-table']/tbody/tr"))),
                0, -1):
            unbind_element = "//*[@id='kqk-table']/tbody/tr[%d]/td[4]/a" % i
            get_element(driver, ('xpath', unbind_element)).click()
            get_element(
                driver,
                ('xpath', "//*[@id='k']/form/div[4]/button[3]")).click()
            assert is_element_present(
                driver,
                ('xpath',
                 "//i[@class='layui-layer-ico layui-layer-ico1']")), "解绑考勤卡失败"
        sleep(0.5)
        # 输入空格 查看全部
        get_element(driver,
                    ('xpath', "//input[@placeholder='请输入考勤卡号或姓名筛选']")).clear()
        get_element(
            driver,
            ('xpath', "//input[@placeholder='请输入考勤卡号或姓名筛选']")).send_keys(' ')
        sleep(0.5)
        get_elements(driver,
                     ('xpath', "//button[contains(text(),'筛选')]"))[0].click()
        driver.find_element_by_xpath("//button[contains(text(),'新增')]").click()
        get_element(
            driver,
            ('xpath', "//input[@placeholder='请输入4-10位考勤卡号']")).send_keys(num)
        get_element(
            driver,
            ('xpath',
             "//span[@class='select2-selection__placeholder']")).click()
        get_element(
            driver,
            ('xpath',
             "//input[@class='select2-search__field']")).send_keys(people)
        sleep(0.5)
        get_element(
            driver,
            ('xpath', "//input[@class='select2-search__field']")).send_keys(
                Keys.ENTER)
        driver.find_element_by_xpath("//button[contains(text(),'确定')]").click()
    if is_element_present(
            driver,
        ('xpath',
         "html/body/div[1]/div[1]/div/div[2]/div[2]/div/div[1]/div[2]/div[2]/div[2]/div[4]/div[2]/ul/li[1]/a"
         )):
        get_element(driver, (
            'xpath',
            "html/body/div[1]/div[1]/div/div[2]/div[2]/div/div[1]/div[2]/div[2]/div[2]/div[4]/div[2]/ul/li[1]/a"
        )).click()
        sleep(0.5)
        element_len = get_elements(driver,
                                   ('xpath', "//*[@id='kqk-table']/tbody/tr"))
        for i in range(1, len(element_len) + 1):
            element = "//*[@id='kqk-table']/tbody/tr[%d]/td[2]" % i
            name_text.insert(i, get_element(driver, ('xpath', element)).text)
        assert str(num) in name_text, "考勤卡添加失败1"
    else:
        element_len_now = get_elements(
            driver, ('xpath', "//*[@id='kqk-table']/tbody/tr"))
        for i in range(1, len(element_len_now)):
            element = "//*[@id='kqk-table']/tbody/tr[%d]/td[2]" % i
            name_text.insert(i, get_element(driver, ('xpath', element)).text)
        assert str(num) in name_text, "考勤卡添加失败2"
    name1_text = []
    for h in range(
            1,
            len(
                get_elements(driver,
                             ('xpath', "//*[@id='kqk-table']/tbody/tr"))) + 1):
        element = "//*[@id='kqk-table']/tbody/tr[%d]/td[3]" % h
        if get_element(driver, ('xpath', element)).text != '-':
            name1_text.insert(h, get_element(driver, ('xpath', element)).text)
    if is_element_present(
            driver,
        ('xpath',
         "html/body/div[1]/div[1]/div/div[2]/div[2]/div/div[1]/div[2]/div[2]/div[2]/div[4]/div[2]/ul/li[4]/a"
         )):
        get_element(driver, (
            'xpath',
            "html/body/div[1]/div[1]/div/div[2]/div[2]/div/div[1]/div[2]/div[2]/div[2]/div[4]/div[2]/ul/li[4]/a"
        )).click()
        sleep(0.5)
    sleep(1)
    get_element(driver,
                ('xpath', "//input[@placeholder='请输入考勤卡号或姓名筛选']")).send_keys(
                    str(name1_text[0]))
    get_elements(driver,
                 ('xpath', "//button[contains(text(),'筛选')]"))[0].click()
    assert name1_text[0] == get_element(
        driver,
        ('xpath',
         "//*[@id='kqk-table']/tbody/tr/td[3]")).text, "考勤卡筛选成功,or 筛选失败"
    # 解绑考勤卡
    get_element(driver,
                ('xpath', "//input[@placeholder='请输入考勤卡号或姓名筛选']")).clear()
    get_element(
        driver,
        ('xpath', "//input[@placeholder='请输入考勤卡号或姓名筛选']")).send_keys(num)
    get_elements(driver,
                 ('xpath', "//button[contains(text(),'筛选')]"))[0].click()
    get_element(
        driver,
        ('xpath', "//*[@id='kqk-table']/tbody/tr/td[1]/input")).click()
    sleep(0.5)
    driver.find_elements_by_xpath("//button[contains(text(),'删除')]")[0].click()
    get_elements(driver,
                 ('xpath', "//button[contains(text(),'确定')]"))[3].click()
    get_element(driver, ('id', 'success')).click()
    if is_element_present(
            driver,
        ('xpath',
         "//div[contains(text(),'考勤卡不存在或无法删除已经绑定用户的考勤卡,请重新选择用户,或者先解绑')]")):
        sleep(7)
        try:
            # get_element(driver, ('xpath', "//button[contains(text(),'取消')]")).click()
            get_element(
                driver,
                ('xpath', "//*[@id='kqk-table']/tbody/tr/td[4]/a")).click()
            get_element(
                driver,
                ('xpath', "//*[@id='k']/form/div[4]/button[3]")).click()
            get_element(driver,
                        ('xpath',
                         "//*[@id='kqk-table']/tbody/tr/td[1]/input")).click()
            get_elements(
                driver,
                ('xpath', "//button[contains(text(),'删除')]"))[0].click()
            get_elements(
                driver,
                ('xpath', "//button[contains(text(),'确定')]"))[3].click()
            get_element(driver, ('id', 'success')).click()
        except Exception as e:
            bug_photo(driver)
            print(e)
    assert is_element_present(driver, ('id', "LAY_demo2")), "删除考勤卡失败"
def location_card(driver, people):
    into_two_level(driver, '设备管理')
    driver.find_element_by_xpath("//a[contains(text(),'定位卡')]").click()
    num = random.randint(1000000, 9999999)
    # 增加定位卡
    driver.find_elements_by_xpath("//button[contains(text(),'新增')]")[1].click()
    get_element(
        driver,
        ('xpath', "//input[@placeholder='请输入6-10定位卡卡号']")).send_keys(num)
    sleep(0.1)
    driver.find_element_by_xpath("//button[contains(text(),'确认')]").click()
    get_element(
        driver,
        ('xpath', "//input[@placeholder='请输入定位卡号或姓名筛选']")).send_keys(num)
    get_elements(driver,
                 ('xpath', "//button[contains(text(),'筛选')]"))[1].click()
    assert str(num) == get_element(
        driver,
        ('xpath',
         "//*[@id='dwk-table']/tbody/tr/td[2]")).text, "不在location中,新增失败"
    # 增加并且绑定人
    num1 = random.randint(1000000, 9999999)
    driver.find_elements_by_xpath("//button[contains(text(),'新增')]")[1].click()
    get_element(driver,
                ('xpath', "//input[@placeholder='请输入6-10定位卡卡号']")).clear()
    get_element(
        driver,
        ('xpath', "//input[@placeholder='请输入6-10定位卡卡号']")).send_keys(num1)
    get_element(
        driver,
        ('xpath', "//span[@class='select2-selection__placeholder']")).click()
    get_element(
        driver,
        ('xpath', "//input[@class='select2-search__field']")).send_keys(people)
    sleep(0.5)
    get_element(
        driver,
        ('xpath', "//input[@class='select2-search__field']")).send_keys(
            Keys.ENTER)
    sleep(0.1)
    driver.find_element_by_xpath("//button[contains(text(),'确认')]").click()
    if is_element_present(driver,
                          ('xpath', "//div[contains(text(),'该用户已绑定定位卡')]")):
        # 解绑定位卡
        sleep(6)
        get_element(driver,
                    ('xpath', "//input[@placeholder='请输入定位卡号或姓名筛选']")).clear()
        get_element(driver,
                    ('xpath',
                     "//input[@placeholder='请输入定位卡号或姓名筛选']")).send_keys(people)
        get_elements(driver,
                     ('xpath', "//button[contains(text(),'筛选')]"))[1].click()
        sleep(1)
        for i in range(
                len(
                    get_elements(driver,
                                 ('xpath', "//*[@id='dwk-table']/tbody/tr"))),
                0, -1):
            unbind_element = "//*[@id='dwk-table']/tbody/tr[%d]/td[10]/a" % i
            get_element(driver, ('xpath', unbind_element)).click()
            sleep(0.1)
            get_element(
                driver,
                ('xpath', "//*[@id='dwk']/form/div[4]/button[3]")).click()
            assert is_element_present(
                driver,
                ('xpath',
                 "//i[@class='layui-layer-ico layui-layer-ico1']")), "解绑考勤卡失败"
        sleep(0.5)
        # 输入空格 查看全部
        get_element(driver,
                    ('xpath', "//input[@placeholder='请输入定位卡号或姓名筛选']")).clear()
        get_element(
            driver,
            ('xpath', "//input[@placeholder='请输入定位卡号或姓名筛选']")).send_keys(' ')
        sleep(0.5)
        get_elements(driver,
                     ('xpath', "//button[contains(text(),'筛选')]"))[1].click()
        driver.find_elements_by_xpath(
            "//button[contains(text(),'新增')]")[1].click()
        sleep(0.5)
        get_element(
            driver,
            ('xpath', "//input[@placeholder='请输入6-10定位卡卡号']")).send_keys(num1)
        get_element(
            driver,
            ('xpath',
             "//span[@class='select2-selection__placeholder']")).click()
        get_element(
            driver,
            ('xpath',
             "//input[@class='select2-search__field']")).send_keys(people)
        sleep(0.5)
        get_element(
            driver,
            ('xpath', "//input[@class='select2-search__field']")).send_keys(
                Keys.ENTER)
        driver.find_element_by_xpath("//button[contains(text(),'确认')]").click()
    get_element(driver,
                ('xpath', "//input[@placeholder='请输入定位卡号或姓名筛选']")).clear()
    get_element(
        driver,
        ('xpath', "//input[@placeholder='请输入定位卡号或姓名筛选']")).send_keys(num1)
    get_elements(driver,
                 ('xpath', "//button[contains(text(),'筛选')]"))[1].click()
    sleep(1)
    assert people == get_element(
        driver,
        ('xpath', "//*[@id='dwk-table']/tbody/tr/td[3]")).text, "定位卡绑定人失败"
    for i in range(
            len(
                get_elements(driver,
                             ('xpath', "//*[@id='dwk-table']/tbody/tr"))), 0,
            -1):
        location_element = "//*[@id='dwk-table']/tbody/tr[%d]/td[1]/input" % i
        get_element(driver, ('xpath', location_element)).click()
        driver.find_elements_by_xpath(
            "//button[contains(text(),'删除')]")[1].click()
        get_elements(driver,
                     ('xpath', "//button[contains(text(),'确认')]"))[3].click()
        get_element(driver, ('id', "success")).click()
        if is_element_present(
                driver,
            ('xpath',
             "//div[contains(text(),'无法删除已经绑定用户的定位卡,请重新选择用户,或者先解绑')]")):
            sleep(7)
            unbind_element = "//*[@id='dwk-table']/tbody/tr[%d]/td[10]/a" % i
            get_element(driver, ('xpath', unbind_element)).click()
            get_element(
                driver,
                ('xpath', "//*[@id='dwk']/form/div[4]/button[3]")).click()
            get_element(driver, ('xpath', location_element)).click()
            sleep(0.5)
            get_elements(
                driver,
                ('xpath', "//button[contains(text(),'删除')]"))[1].click()
            sleep(0.5)
            get_elements(
                driver,
                ('xpath', "//button[contains(text(),'确认')]"))[3].click()
            get_element(driver, ('id', "success")).click()
    assert is_element_present(driver,
                              ('xpath', "//td[@colspan='10']")), "定位卡删除失败"
def change_time_of_attendance(driver, remark, file_path, people_number):
    """
    1 代表单人, 2代表多人
    """
    try:
        into_one_level(driver, '任务面板')
        sleep(1)
        into_one_level(driver, '发起申请')
        get_element(driver,
                    ('xpath', "//div[contains(text(),'考勤异常修改')]")).click()
        get_elements(
            driver,
            ('xpath', "//i[@class='glyphicon glyphicon-plus']"))[0].click()
        sleep(0.5)
        if people_number == 1:
            get_element(driver, ('id', "realname")).send_keys('曹永')
            get_element(driver, ('id', "realsearch")).click()
            get_elements(
                driver, ('xpath', "//input[@name='btSelectItem']"))[0].click()
            get_element(driver,
                        ('xpath', "//a[contains(text(),'确定')]")).click()
            sleep(0.5)

            get_element(driver,
                        ('xpath',
                         "//div[@id='uploadFile']/input")).send_keys(file_path)
        element = "//input[@name='btSelectItem']"
        if people_number == 2:
            for i in range(0, len(get_elements(driver, ('xpath', element))),
                           2):
                elements = "//input[@name='btSelectItem']"
                get_elements(driver, ('xpath', elements))[i].click()
                sleep(0.1)
            get_element(driver,
                        ('xpath', "//a[contains(text(),'确定')]")).click()
        setting_input_time(driver)
        get_element(
            driver,
            ('xpath', "//textarea[@class='form-control']")).send_keys(remark)
        get_elements(driver, (
            'xpath',
            "//input[@class='form-control input-sm form-date']"))[0].send_keys(
                get_pass_dates(1))
        get_elements(
            driver,
            ('xpath', "//input[@class='form-control input-sm form-date-time2']"
             ))[0].send_keys('08:00')
        get_elements(
            driver,
            ('xpath', "//input[@class='form-control input-sm form-date-time2']"
             ))[1].send_keys('17:00')
        get_element(driver,
                    ('xpath', "//button[contains(text(),'提交申请')]")).click()
        get_element(driver, ('id', "success")).click()
        sleep(0.5)
        # 工人个数
        worker_number = 5
        # 修改1天前的考勤异常
        day_num = 1

        while True:
            if is_element_present_3s(
                    driver, ('xpath', "//div[contains(text(),'当前人员暂无考勤记录')]"),
                    2):
                print('考勤未生成昨天的数据,请查看定时任务是否开启')
                workers = random.sample(range(1, 15), worker_number)
                # 选择工人按钮
                get_element(
                    driver,
                    ('xpath', "//button[@id='attendanceUpdateData']")).click()
                # 清空选择
                get_element(
                    driver,
                    ('xpath', "//button[contains(text(),'清空选择')]")).click()
                if is_element_present_3s(
                        driver, ('xpath', "//a[contains(text(),'›')]"), 1):
                    # 滑动到最下面
                    get_elements(
                        driver,
                        ('xpath', "//a[contains(text(),'›')]"))[0].send_keys(
                            Keys.DOWN)
                    sleep(0.5)
                    get_elements(
                        driver,
                        ('xpath', "//a[contains(text(),'›')]"))[0].click()
                for i in range(worker_number):
                    get_elements(driver,
                                 ('xpath', element))[workers[i]].click()
                get_element(driver,
                            ('xpath', "//a[contains(text(),'确定')]")).click()
                get_elements(
                    driver,
                    ('xpath',
                     "//input[@class='form-control input-sm form-date']"
                     ))[0].clear()
                get_elements(
                    driver,
                    ('xpath',
                     "//input[@class='form-control input-sm form-date']"
                     ))[0].send_keys(get_pass_dates(day_num))
                day_num += 1
                get_element(
                    driver,
                    ('xpath', "//button[contains(text(),'提交申请')]")).click()
                get_element(driver, ('id', "success")).click()
                sleep(0.5)
            else:
                break
        into_one_level(driver, '我的任务')
        get_element(driver, ('xpath', "//a[contains(text(),'我发起的')]")).click()
        sleep(1)
        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 test_add_company_information(self):
     web_login(self.browser, self.username, self.password)
     try:
         self.browser.find_element_by_xpath(
             "//button[contains(text(),'新增')]").click()
         # 资质专业
         a = ['公路工程施工总承包资质', '铁路工程施工总承包资质', '港口与航道工程施工总承包资质', '地质专业']
         self.browser.find_element_by_xpath(
             ".//*[@id='add-zizhi']/form/div[4]/input").send_keys(
                 a[random.randint(0, 3)])
         # 证书号码
         self.browser.find_element_by_xpath(
             ".//*[@id='add-zizhi']/form/div[6]/input").send_keys(
                 self.certificate_number)
         # 发证机关
         c = '政府'
         self.browser.find_element_by_xpath(
             ".//*[@id='add-zizhi']/form/div[8]/input").send_keys(c)
         # 有效期
         d = random.randint(1, 9)
         self.browser.find_element_by_xpath(
             "//input[@placeholder='年']").send_keys(d)
         # 复审时间
         self.browser.find_element_by_xpath(
             "//input[@placeholder='选择日期不得早于今天']").click()
         self.browser.find_element_by_xpath(
             "html/body/div[5]/div[3]/table/tbody/tr[6]/td[7]/div").click()
         # 证书正面
         get_element(self.browser,
                     ('id', 'file1')).send_keys(self.file_path)
         # 证书反面
         get_element(self.browser,
                     ('id', 'file2')).send_keys(self.file_path)
         sleep(1)
         get_element(self.browser,
                     ('xpath', "//button[contains(text(),'确认')]")).click()
         self.browser.refresh()
         new_elem = "//td[contains(text(),%s)]" % self.certificate_number
         sleep(0.5)
         select_companys_name = self.browser.find_elements_by_xpath(
             new_elem)
         certificate_number_list = []
         j = 2
         # 获取所有的证书号码
         for i in range(int(len(select_companys_name) / 6)):
             certificate_number_list.insert(
                 i,
                 self.browser.find_elements_by_xpath(new_elem)[j].text)
             j += 6
         print(certificate_number_list)
         assert self.certificate_number in certificate_number_list, "资质未增加成功"
         information_element = "//tr[@data-index='0']"
         sleep(0.5)
         self.browser.find_elements_by_xpath(information_element)[0].click()
         # 验证图片是否上传成功
         if is_element_present_3s(
                 self.browser,
             ('xpath', "//div[1]/img[@style='display: none;']"), 3):
             print("图片未上传成功")
             assert False
         else:
             pass
         # 删除证书
         get_element(self.browser,
                     ('xpath', "//button[contains(text(),'删除')]")).click()
         get_element(self.browser, ('id', "success")).click()
         assert is_element_present(
             self.browser, ('xpath', "//div[@id='LAY_demo2']")), "未弹出删除成功框"
         sleep(3)
         certificate_number_list_1 = []
         j = 2
         sleep(0.5)
         new_select_companys_name = self.browser.find_elements_by_xpath(
             new_elem)
         # 获取所有的证书号码
         for i in range(int(len(new_select_companys_name) / 6)):
             certificate_number_list_1.insert(
                 i,
                 self.browser.find_elements_by_xpath(new_elem)[j].text)
             j += 6
         print(certificate_number_list_1)
         if self.certificate_number in certificate_number_list_1:
             print("删除证书失败")
             assert False
         else:
             pass
     except Exception as e:
         print(e)
         bug_photo(self.browser)
         assert False