Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import sys
- import io
- import time
- import shutil
- import logging
- import configparser
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support.wait import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- cf = configparser.ConfigParser()
- cf.read('urlconfig.conf')
- sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8') # 改变标准输出的默认编码
- os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
- browser = webdriver.Ie()
- isMiniWindow = cf.getboolean("web", "isMiniWindow")
- waitSecond = cf.getint("web", "waitSecond")
- closeTabSecond = cf.getint("web","closeTabSecond")
- if(isMiniWindow):
- browser.minimize_window()
- def init():
- curDir = os.path.dirname(__file__);
- ieDir = 'C:\Program Files (x86)\Internet Explorer'
- if os.path.exists(ieDir) == False:
- ieDir = 'C:\Program Files\Internet Explorer'
- if os.path.exists(ieDir + '\IEDriverServer.exe') == False:
- shutil.copy(curDir + '\IEDriverServer.exe', ieDir + '\IEDriverServer.exe')
- logging.info('已复制IEDriverServer.exe至系统!')
- else:
- logging.info('IEDriverServer.exe已存在!')
- def initLogging():
- #初始化日志器
- logging.basicConfig(level=logging.INFO,
- format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
- datefmt='%a, %d %b %Y %H:%M:%S',
- filename='LogPermit.log',
- filemode='w')
- # 定义一个StreamHandler,将INFO级别或更高的日志信息打印到标准错误,并将其添加到当前的日志处理对象#
- console = logging.StreamHandler()
- console.setLevel(logging.INFO)
- formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
- console.setFormatter(formatter)
- logging.getLogger('').addHandler(console)
- def login(errorIndex):
- # 访问登录页面,等待一定时间,让js脚本加载完毕
- try:
- url = cf.get("web", "url")
- logging.info('打开登录页中!')
- browser.get(url)
- browser.switch_to.default_content()
- WebDriverWait(browser, 60).until(EC.presence_of_element_located((By.ID, 'txtUser')))
- # 输入用户名、输入密码、点击“登录”按钮
- password = browser.find_element_by_name('txtPSW')
- password.send_keys(cf.get("web", "pwd"))
- username = browser.find_element_by_name('txtUser')
- username.send_keys(cf.get("web", "username"))
- btn = browser.find_element_by_css_selector('input[type=submit]');
- btn.click()
- logging.info('输入用户名、输入密码,点击“登录”按钮中!')
- browser.implicitly_wait(10)
- WebDriverWait(browser, 60).until(EC.presence_of_element_located((By.ID, 'form1')))
- logging.info('已打开首页!')
- urls = str(cf.get("url", "url")).split('\n');
- index = 1
- for url in urls:
- if(index >= errorIndex):
- try:
- browser.execute_script("addTab('选项卡" + str(index) + "','" + url + "','');setTimeout(function(){var TabName='选项卡"+ str(index) + "';var tabStrip=top.$find('RightRadTabStrip');if(tabStrip!=null){var tab=tabStrip.findTabByText(TabName);if(tab!=null){deleteTab(tab)}}}," + str(closeTabSecond) + "000);")
- logging.info('打开选项卡' + str(index) + '完成!')
- index = index + 1
- time.sleep(waitSecond)
- result = EC.alert_is_present()(browser)
- if result:
- logging.info('弹出信息:' + str(result.text))
- result.accept()
- else:
- logging.info("alert 未弹出!")
- browser.switch_to.default_content()
- except Exception as err:
- logging.error(str(type(err)) + '\t' + str(err))
- login(index)
- logging.info('打开所有选项卡完成!')
- except Exception as err:
- logging.error(str(type(err)) + '\t' + str(err))
- browser.quit()
- finally:
- logging.info('程序关闭!')
- #os.system("taskkill /F /IM tohi_login.exe")
- def main():
- initLogging();
- init();
- login(1);
- main();
Add Comment
Please, Sign In to add comment