Example #1
0
def loginOM(env='c', username='', passwoard='', **bro):
    chrome_option = webdriver.ChromeOptions()
    chrome_option.add_argument('disable-infobars')
    browser = webdriver.Chrome(
        options=chrome_option) if not bro else bro['bro']
    codeurl = f"{OMdomainDic[env]}/securityCode/imageCaptcha"
    browser.maximize_window()
    browser.get(f'{OMdomainDic[env]}/admin/custom/index/htm')
    username = username if username else countOM[env]['usernameOM']
    passwoard = passwoard if passwoard else countOM[env]['passwordOM']
    while True:
        cookie_without_login = "******".join([
            item["name"] + "=" + item["value"]
            for item in browser.get_cookies()
        ])
        browser = waitTo(browser,
                         SCENSEE,
                         way='id',
                         name='username',
                         operate='click')
        usernamename = browser.find_element_by_id('username')
        usernamename.clear()
        usernamename.send_keys(username)
        try:
            passwordname = browser.find_element_by_id('password-self')
        except SCENSEE:
            passwordname = browser.find_element_by_id('password')
        passwordname.click()
        passwordname.clear()
        time.sleep(1)
        keyInput(passwoard)
        codename = browser.find_element_by_id('securityCode')
        code = GetcodePicOM(cookie_without_login, codeurl)
        codename.clear()
        codename.send_keys(code)
        browser.find_element_by_xpath(
            '/html/body/div[2]/form/div[6]/button').click()
        time.sleep(1)
        try:
            browser.find_element_by_id('securityCode')
        except SCENSEE:
            break
    cookieLogined = ";".join(
        [item["name"] + "=" + item["value"] for item in browser.get_cookies()])
    saveCookie(cookieLogined, f'OM_{env}')
    return browser, cookieLogined
Example #2
0
def addOperator(opLoginID,env,newRole=1,**bro):
	initialPWD='qqq111'
	convertIdDic={'k':'10032','c':'10032','p':'97','s':'97'}
	chrome_option=webdriver.ChromeOptions()
	chrome_option.add_argument('disable-infobars')
	browser=webdriver.Chrome(options=chrome_option) if not bro else bro['bro']
	if newRole:#新增角色
		browser.get(f'{domainDic[env]}/user/roleManage?sup_menu=navItem6&sub_menu=-user-roleManage&convertId={convertIdDic[env]}')#进入角色管理页面
		browser=waitTo(browser,SCENSEE,way='css',name='#priv-query-form>table>tbody>tr>td:nth-child(6)>button',operate='click')#点击新增角色
		browser=waitTo(browser,SCENSEE,way='id',name='operateRoleName',operate='send_keys',value='操作员')#输入操作员名称
		if env=='k':
			browser.find_element_by_id('tree_25004_anchor').click()#勾选
			browser.find_element_by_id('tree_99011_anchor').click()#勾选
			browser.find_element_by_id('tree_10002_anchor').click()#勾选
			browser.find_element_by_id('tree_31055_anchor').click()#勾选
			browser.find_element_by_id('tree_46018_anchor').click()#勾选
			browser.find_element_by_id('tree_10003_anchor').click()#勾选
			browser.find_element_by_id('tree_10004_anchor').click()#勾选
			browser.find_element_by_id('tree_10005_anchor').click()#勾选	
		elif env=='c':
			browser.find_element_by_id('tree_25004_anchor').click()#勾选
			browser.find_element_by_id('tree_92011_anchor').click()#勾选
			browser.find_element_by_id('tree_10002_anchor').click()#勾选
			browser.find_element_by_id('tree_31055_anchor').click()#勾选
			browser.find_element_by_id('tree_46018_anchor').click()#勾选
			browser.find_element_by_id('tree_10003_anchor').click()#勾选
			browser.find_element_by_id('tree_10004_anchor').click()#勾选
			browser.find_element_by_id('tree_10005_anchor').click()#勾选
		elif env in 'ps':
			browser.find_element_by_id('tree_7017_anchor').click()#勾选
			browser.find_element_by_id('tree_40020_anchor').click()#勾选
			browser.find_element_by_id('tree_67_anchor').click()#勾选
			browser.find_element_by_id('tree_9016_anchor').click()#勾选
			browser.find_element_by_id('tree_23031_anchor').click()#勾选
			browser.find_element_by_id('tree_68_anchor').click()#勾选
			browser.find_element_by_id('tree_69_anchor').click()#勾选
			browser.find_element_by_id('tree_70_anchor').click()#勾选
		browser.find_element_by_id('operateBtn').click()#点击增加
		browser,text=waitTo(browser,SCENSEE,way='css',name='body>div.message_mask>div.message>div.message_msg',operate='getText')
		if text=='角色增加成功':
			browser=waitTo(browser,SCENSEE,way='css',name='body>div.message_mask>div.message>div.message_head>a',operate='click')
		elif text=='操作失败,角色数据已存在!':
			pass
		else:
			print('新增角色失败!')
			os.system('pause')
	browser.get(f'{domainDic[env]}/user/manage')#进入操作员管理页面
	browser=waitTo(browser,SCENSEE,way='id',name='addUserBtn',operate='click')#点击用户新增
	browser.find_element_by_id('operateUserCode').send_keys(opLoginID)#输入用户名
	browser.find_element_by_id('operateUserName').send_keys(fake.name())
	browser.find_element_by_id('operateCertNbr').send_keys(fake.ssn())
	browser.find_element_by_id('operateMobile').send_keys(fake.phone_number())
	browser.find_element_by_id('operateEmail').send_keys(fake.email())
	browser.find_element_by_id('certTypeselected').click()#点击证件类型
	browser.find_element_by_css_selector('#certType_combobox_ul>li:nth-child(2)').click()#点击身份证
	browser.find_element_by_id('genderselected').click()#点击性别
	browser.find_element_by_css_selector('#gender_combobox_ul>li:nth-child(2)').click()#点击男
	flag=1
	while True:
		if flag:
			browser.find_element_by_id('password-self').click()#点击密码输入框
		else:
			browser.find_element_by_id('password').click()#点击密码输入框
		time.sleep(0.5)
		keyInput(initialPWD)
		time.sleep(0.5)
		if flag:
			browser.find_element_by_id('password2-self').click()#点击密码输入框
		else:
			browser.find_element_by_id('password2').click()#点击密码输入框
		time.sleep(0.5)
		keyInput(initialPWD)
		time.sleep(0.5)
		if flag:
			browser.find_element_by_id('showRoleBtn').click()#点击分配角色
			time.sleep(0.5)
			browser=waitTo(browser,SCENSEE,way='xpath',name="//td[text()='操作员']/preceding-sibling::td[1]/div/span/input",operate='click')#勾选第一个角色
			time.sleep(0.5)
			browser.find_element_by_css_selector('#roleDiv>div.user_sub_title>div:nth-child(2)>button').click()#点击确定
			time.sleep(0.5)
			flag=0
		browser=waitTo(browser,SCENSEE,way='id',name='operateBtn',operate='click')#点击增加
		browser,text=waitTo(browser,SCENSEE,way='css',name='body>div.message_mask>div.message>div.message_msg',operate='getText')
		if text=='操作成功':
			browser=waitTo(browser,SCENSEE,way='css',name='body>div.message_mask>div.message>div.message_head>a',operate='click')
			return browser,initialPWD
		elif text=='两次输入密码不一致':
			browser=waitTo(browser,SCENSEE,way='css',name='body>div.message_mask>div.message>div.message_head>a',operate='click')
			continue
		else:
			print('新增操作员失败!')
			os.system('pause')
			time.sleep(3)
Example #3
0
def paying(browser, amount, username='******', password='******', payword='*', env='c'):
    username = username if username else '*'
    password = password if password else '*'
    payword = payword if payword else '*'
    env = env if env else 'c'
    # browser.switch_to.window(browser.window_handles[-1])
    print('付款方:', username)
    browser = switchTag_URL(browser, 'payment_plugin')
    browser = waitTo(browser,
                     SCENSEE,
                     way='id',
                     name='iousPay',
                     operate='click',
                     value='')  #点击白条支付
    browser.find_element_by_id('loginCode').send_keys(username)
    browser.find_element_by_id('logon').click()  #点击后元素ID会变
    browser = waitTo(browser, (SCENSEE, SCEENIE),
                     way='id',
                     name='password',
                     operate='click',
                     value='')  #点击密码框
    # browser.find_element_by_id('password').click()
    time.sleep(1)
    flag = 4
    while flag:
        keyInput(password)
        time.sleep(1)
        browser.find_element_by_id('logon').click()
        if '密码错误' in browser.find_element_by_id('prompt_logonResult').text:
            flag -= 1
            browser.find_element_by_id('password').click()
            time.sleep(1)
            for i in range(10):
                keyInput('backspace')
            continue
        else:
            break
    browser = waitTo(browser, (SCENSEE, SCEENIE, SCEECIE, SCEENVE),
                     way='id',
                     name='iousAmount',
                     operate='send_keys',
                     value=str(int(amount) / 100))
    browser.find_element_by_id('password4pay-self').click()  #点击支付密码框,聚焦
    keyInput(payword)
    time.sleep(1)
    browser.find_element_by_id('next').click()
    while True:  #判断是否支付成功
        browser = switchTag_URL(browser, 'iousPayAllocate')
        browser, tipText = waitTo(browser,
                                  SCENSEE,
                                  way='class',
                                  name='tip-desc',
                                  operate='getText',
                                  value='')
        if '失败' in tipText:
            browser.find_element_by_css_selector('[value="关    闭"]').click()
            browser = switchTag_URL(browser, 'payment_plugin')
            browser.find_element_by_css_selector('[value="支付遇到问题"]').click()
            browser.find_element_by_css_selector('[value="重新支付"]').click()
            browser.find_element_by_id('iousPay').click()  #点击白条支付
            browser = waitTo(browser, (SCENSEE, SCEENIE, SCEECIE, SCEENVE),
                             way='id',
                             name='iousAmount',
                             operate='send_keys',
                             value=str(int(amount) / 100))
            time.sleep(2)
            browser.find_element_by_id(
                'password4pay-self').click()  #点击支付密码框,聚焦
            keyInput(payword)
            time.sleep(1)
            browser.find_element_by_id('next').click()
            continue
        else:
            while True:  #获取订单号
                try:
                    orderCode = browser.find_element_by_class_name(
                        'order_info').find_element_by_tag_name('p').text
                    print(orderCode)
                    break
                except SCENSEE:
                    time.sleep(1)
                    continue
            break
    browser = switchTag_URL(browser, 'haiermoney')
    num = len(browser.find_elements_by_tag_name('a'))
    for i in range(num):
        browser.find_elements_by_tag_name('a')[i].click()
        time.sleep(1)
        browser.back()
        time.sleep(0.5)
    if env in ['c', 'k']:
        browser = waitTo(browser,
                         SCENSEE,
                         way='css',
                         name='.agree_check',
                         operate='click',
                         value='')  #勾选同意
    browser = waitTo(browser,
                     SCENSEE,
                     way='css',
                     name='.btn_signing',
                     operate='click',
                     value='')  #点击下一步
    if env in ['c', 'k']: smsCode = 1234
    elif env in ['p', 's']:
        browser = waitTo(browser,
                         SCENSEE,
                         way='id',
                         name='yzm',
                         operate='click',
                         value='')  #点击发送短信验证码
        smsCode = input('请输入短信验证码:')
    browser = waitTo(browser,
                     SCENSEE,
                     way='id',
                     name='yz_num',
                     operate='send_keys',
                     value=smsCode)  #输入短信验证码
    browser.find_element_by_css_selector(
        'body > div > div > div > div > button').click()  #确认签署
    os.system('pause')
Example #4
0
def loginMC(username='', passwoard='', env='c', **bro):
    if not bro:
        chrome_option = webdriver.ChromeOptions()
        chrome_option.add_argument('disable-infobars')
        browser = webdriver.Chrome(options=chrome_option)
        browser.implicitly_wait(5)
    else:
        browser = bro['bro']
    loginurl = f'{MCdomainDic[env]}/loginface.html'
    codeurl = f'{MCdomainDic[env]}/verify/getVerifyCode'
    username = username if username else countMC[env]['usernameMC']
    passwoard = passwoard if passwoard else countMC[env]['passwordMC']
    flag = 1
    while flag:
        flag = 0
        browser.get(loginurl)
        cookie_without_login = "******".join([
            item["name"] + "=" + item["value"]
            for item in browser.get_cookies()
        ])
        inputusername = browser.find_element_by_id('username')
        inputusername.clear()
        inputusername.send_keys(username)
        inputusername.send_keys(Keys.TAB * 3)
        time.sleep(1)
        keyInput(passwoard)
        codename = browser.find_element_by_id('validateCode')
        while 1:
            code = GetcodePic(cookie_without_login, loginurl, codeurl)
            try:
                codename.send_keys(code)
            except SCESERE:  #报错说明已登录成功
                cookieList = list(
                    map(
                        lambda k_v: dict(zip(['name', 'value'], k_v.split('='))
                                         ), ";".join([
                                             item["name"] + "=" + item["value"]
                                             for item in browser.get_cookies()
                                         ]).split(';')))
                cookieLogined = ';'.join(
                    f"{cookieDic['name']}={cookieDic['value']}"
                    for cookieDic in cookieList)
                saveCookie(cookieLogined, f'MC_{env}')
                return browser, cookieLogined
            browser.find_element_by_css_selector(
                'button.btn.btn-primary.btn-lg.btn-block').click()  #点击登陆
            time.sleep(1)
            try:
                if browser.find_element_by_id('messageErr').text == '验证码错误':
                    continue
                elif '密码' in browser.find_element_by_id('messageErr').text:
                    flag = 1
                    break
            except selenium.common.exceptions.NoSuchElementException:
                pass
            while True:
                if 'homepage' in browser.current_url:
                    cookieList = list(
                        map(
                            lambda k_v: dict(
                                zip(['name', 'value'], k_v.split('='))),
                            ";".join([
                                item["name"] + "=" + item["value"]
                                for item in browser.get_cookies()
                            ]).split(';')))
                    cookieLogined = ';'.join(
                        f"{cookieDic['name']}={cookieDic['value']}"
                        for cookieDic in cookieList)
                    saveCookie(cookieLogined, f'MC_{env}')
                    return browser, cookieLogined
                else:
                    # print(browser.current_url)
                    time.sleep(1)
Example #5
0
def login(username='******', passwd='*', env='c', menhuPath='', **bro):
    chrome_option = webdriver.ChromeOptions()
    chrome_option.add_argument('disable-infobars')
    browser = webdriver.Chrome(
        options=chrome_option) if not bro else bro['bro']
    loginurl = f'{loginDomainDic[env]}/login?service={domainDic[env]}/login.do?method=login'
    codeurl = f"{loginDomainDic[env]}/vimage.do"
    browser.maximize_window()
    browser.implicitly_wait(5)
    flag = 0
    while True:
        flag += 1
        browser.get(loginurl)
        cookie_without_login = "******".join([
            item["name"] + "=" + item["value"]
            for item in browser.get_cookies()
        ])
        inputusername = browser.find_element_by_id('username')
        inputusername.clear()
        inputusername.send_keys(username)
        try:
            inputpassword = browser.find_element_by_id('loginpwd-self')
        except SCENSEE:
            continue
        browser.find_element_by_id("username").send_keys(Keys.TAB)
        time.sleep(1)
        keyInput(passwd)
        codename = browser.find_element_by_id('verifyCode')
        code = GetcodePic(cookie_without_login, loginurl, codeurl)
        codename.clear()
        codename.send_keys(code)
        #############################################################################
        while 1:
            if flag == 1:
                browser.find_element_by_id('sendSmsBtn').click()
                smstip = browser.find_element_by_id(
                    'sendSmsBtn').get_attribute('value')
                if '已发送' in smstip: break
                else: time.sleep(1)
            else:
                smstip = browser.find_element_by_id(
                    'sendSmsBtn').get_attribute('value')
                if '再次' in smstip:
                    browser.find_element_by_id('sendSmsBtn').click()
                    time.sleep(1)
                    smstip = browser.find_element_by_id(
                        'sendSmsBtn').get_attribute('value')
                    if '已发送' in smstip: break
                    else: time.sleep(1)
                else: time.sleep(1)
        if env in 'kc':
            time.sleep(2)
            phoneNumber = getTel(username, path=menhuPath)
            smsCode = getSMScode(phoneNumber, waiteSec=2, menhuPath=menhuPath)
        else:
            if menhuPath:
                sendInput('请发送短信验证码,格式:验证码 xxxx')
                smsCode = getInput('验证码')
            else:
                smsCode = input('输入验证码:')
        try:
            browser.find_element_by_id('smsCode').send_keys(smsCode)
        except SCEUAPE:
            print(browser.switch_to.alert.text)
            browser.switch_to.alert.accept()
            continue
        #############################################################################
        browser.find_element_by_id('login_button').click()
        time.sleep(5)
        try:
            if browser.find_element_by_id('login_button'): continue
        except SCENSEE:
            break
        except SCEUAPE:
            continue
    cookie_with_login = "******".join(
        [item["name"] + "=" + item["value"] for item in browser.get_cookies()])
    return browser
Example #6
0
def changePassword(username,
                   password,
                   newpassword='******',
                   paypassword='******',
                   env='c',
                   **bro):
    browser = login(username, password, env, **bro)
    time.sleep(2)
    n = 0
    while 1:
        browser.find_element_by_id('operateBtn').click()  #提交,点击提交后元素id会变
        time.sleep(1)
        try:
            browser.find_element_by_xpath(
                '/html/body/div[2]/div[2]/div[1]/a').click()  #关闭弹窗
        except SCENSEE:
            pass
        time.sleep(1)
        browser.find_element_by_id('oldPassword').click()
        time.sleep(1)
        keyInput(password)  #旧密码
        browser.find_element_by_id('newPassword').click()
        time.sleep(1)
        keyInput(newpassword)  #新密码
        browser.find_element_by_id('newPassword2').click()
        time.sleep(1)
        keyInput(newpassword)  #确认新密码
        time.sleep(1)
        browser.find_element_by_id('operateBtn').click()  #提交
        time.sleep(1)
        if '修改成功' in browser.find_element_by_xpath(
                '/html/body/div[2]/div[2]/div[2]').text:
            browser.find_element_by_xpath(
                '/html/body/div[2]/div[2]/div[1]/a').click()  #关闭弹窗
            break
        else:
            browser.find_element_by_xpath(
                '/html/body/div[2]/div[2]/div[1]/a').click()  #关闭弹窗
            browser.refresh()
            time.sleep(1)
            continue
        n += 1
        if n == 5:
            input('自动修改密码失败,请手动修改密码和支付密码后按回车:')
            return browser
    time.sleep(1)
    browser.find_element_by_id('operateBtn').click()  #转去支付密码页面
    #/user/securityPayPswUpdate
    time.sleep(1)
    browser.find_element_by_id('operateBtn').click()  #提交
    time.sleep(1)
    browser.find_element_by_xpath(
        '/html/body/div[2]/div[2]/div[1]/a').click()  #关闭弹窗
    n = 0
    while 1:
        time.sleep(1)
        browser.find_element_by_id('password').click()
        time.sleep(1)
        keyInput(paypassword)  #新密码
        browser.find_element_by_id('password2').click()
        time.sleep(1)
        keyInput(paypassword)
        # while_ture(browser.find_element_by_id,'operateBtn')
        browser = waitTo(browser, (SCENSEE, SCEECIE, SCEENIE),
                         way='id',
                         name='operateBtn',
                         operate='click')
        time.sleep(1)
        try:
            browser.find_element_by_xpath(
                '/html/body/div[2]/div[2]/div[1]/a').click()
            continue
        except SCENSEE:
            break
        n += 1
        if n == 5:
            input('自动修改密码失败,请手动修改支付密码后按回车:')
            return browser
    return browser