def remuneration_pay(driver, switch): # 劳务报酬中间支付 if switch: price = random.randint(3000, 50000) price_1 = random.randint(3000, 50000) price_2 = random.randint(3000, 50000) get_element(driver, ( 'xpath', "//div[contains(text(),'元')]/input[@class='form-num form-control input-sm']" )).send_keys(price) get_element(driver, ('xpath', "//option[contains(text(),'现金')]")).click() get_elements(driver, ('xpath', "//button[contains(text(),'添加')]"))[2].click() setting_input_time(driver) get_elements(driver, ( 'xpath', "//input[@class='need form-control input-sm text-center form-date']" ))[0].send_keys(get_pass_dates(60)) get_elements(driver, ( 'xpath', "//input[@class='need form-control input-sm text-center form-date']" ))[1].send_keys(get_pass_dates(30)) get_elements(driver, ( 'xpath', "//div[contains(text(),'元')]/input[@class='need form-control input-sm']" ))[0].send_keys(price_1) get_elements(driver, ( 'xpath', "//div[contains(text(),'元')]/input[@class='need form-control input-sm']" ))[1].send_keys(price_2) else: pass
def test_add_face_worker(self): pwd = 123456 sid = login(self.ws_driver, self.username, pwd) i = 0 while True: identity_number = getDistrictCode() name = get_people_name() sex_str = "男女" sex = random.choice(sex_str) birthday = get_pass_dates(random.randint(7500, 25550)) overdue = '2008/08/15-2020/08/15' mobile = get_phone_number() print(mobile) characteristic_value = random_face_eigenvalues() user = quick_register(self.ws_driver, sid['data']['sid'], identity_number, name, sex, birthday, overdue, self.file_path, self.file_path, mobile, characteristic_value) workflow_process_create(self.ws_driver, sid['data']['sid'], user['data']['user_id']) i += 1 if i > self.number: break else: pass
def workflow_process_create(ws_driver, sid, worker_id, number=1): # 签订用工合同 if number: start_day = get_pass_dates(2) else: start_day = get_future_date(1) parameter = { "command": { "path": "workflow.consumer.ProcessCreate" }, "parameters": { "sid": sid, "flow_name": "sign_worker_contract", "worker_contract": { "team_id": 1, "worktype_id": 1, "term_type": 1, # 非固定期限 "worker_id": worker_id, # ** 单人** "start_day": start_day, "finish_day": get_future_date(300), "pay_day": 15, "morning_time_on_duty": "8:30", "morning_time_off_duty": "11:30", "afternoon_time_on_duty": "12:00", "afternoon_time_off_duty": "18:00", "payment_method": 1, }, "work_time_pay": [{ "time_unit": "小时", "pay_mount": 20, }] } } result = ws_driver.web_socket_request(parameter) assert result['msg'] == '成功'
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
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
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
def family_information(driver): sleep(3) try: get_element(driver, ('xpath', "//div[@data-target='#mo-home']")).click() get_element( driver, ('xpath', "//input[@data-duplex-changed='show1']")).click() get_elements( driver, ('xpath', "//div[@class='pi-plane-con-text']/input"))[0].clear() get_elements( driver, ('xpath', "//div[@class='pi-plane-con-text']/input"))[0].send_keys('2') setting_input_time(driver) # 结婚日期 get_elements(driver, ('xpath', "//div[@id='marry']/input"))[0].send_keys( get_pass_dates(100)) get_elements( driver, ('xpath', "//div[@class='pi-plane-con-text']/input"))[1].send_keys( getPeopleName()) get_elements( driver, ('xpath', "//div[@class='pi-plane-con-text']/input"))[2].send_keys( get_mobile()) relation_element = "//div[2]/div/div[6]/select/option[%s]" % str( random.randint(2, 8)) get_element(driver, ('xpath', relation_element)).click() len_province = len( get_elements(driver, ('xpath', "//div[2]/div/div[7]/select/option"))) province_element = "//div[2]/div/div[7]/select/option[%s]" % str( random.randint(2, len_province)) get_element(driver, ('xpath', province_element)).click() sleep(1) len_city = len( get_elements(driver, ('xpath', "//div[2]/div/div[8]/select/option"))) city_element = "//div[2]/div/div[8]/select/option[%s]" % str( random.randint(2, len_city)) get_element(driver, ('xpath', city_element)).click() sleep(1) len_district = len( get_elements(driver, ('xpath', "//div[2]/div/div[9]/select/option"))) district_element = "//div[2]/div/div[9]/select/option[%s]" % str( random.randint(1, len_district)) get_element(driver, ('xpath', district_element)).click() get_element(driver, ('xpath', "//div[2]/div/div[10]/input")).send_keys('塔克拉玛干') get_element(driver, ('xpath', "//div[2]/div/div[11]/input")).send_keys('厄尔') get_elements(driver, ('xpath', "//button[contains(text(),'保存')]"))[1].click() assert get_element(driver, ('id', "LAY_demo2")).text == '更新成功' a = get_element(driver, ('id', "LAY_demo2")).text print(a) except Exception as e: print(e) bug_photo(driver) assert False
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_pass_dates(2)) get_element(driver, ('xpath', "//input[@placeholder='选择日期不得早于今天']")).send_keys( get_future_date(299)) get_element( driver, ('xpath', "//input[@placeholder='请输入劳务经理姓名']")).send_keys('咋努瓦') 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
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
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 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 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 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
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