美文网首页
成绩登统

成绩登统

作者: Noza_ea8f | 来源:发表于2021-07-12 09:11 被阅读0次
from selenium import webdriver
import time
import pandas as pd
from lib import user_info
from data import data


# 等待提示
def wait_key():
    while True:
        message = input('请输入“空格键”继续:')
        if message == ' ':
            break
        print('你输入的是 ' + message + '!')


# 判断是否有弹出框
def alert_is_present(browser):
    try:
        alert = browser.switch_to.alert
        print(alert.text)
        return alert
    except:
        return False


browser = webdriver.Chrome()
url = 'http://121.28.25.166/StationWeb/pages/common/frameset.jsp'
browser.get(url)
# 登录
browser.find_element_by_name('j_username_temp').send_keys(user_info.username)
browser.find_element_by_name('j_password').send_keys(user_info.pswd)
browser.find_element_by_name('txtschool').send_keys('1300300')
# browser.find_element_by_name('veryCode').click()
wait_key()
# paper_id_ls = ['7908', '1905']

for d in data:
    for paper_id, v in d.items():
        handles = browser.window_handles  # 获得所有窗口句柄
        browser.switch_to.window(handles[-1])  # 取最新的
        browser.switch_to.parent_frame()  # 返回父框架
        browser.switch_to.frame('main')  # 定位到main框架
        browser.switch_to.frame('Info')  # Info
        # todo 输入试卷号
        time.sleep(3)
        browser.find_element_by_name('paperId').clear()
        browser.find_element_by_name('paperId').send_keys(paper_id)
        browser.find_element_by_name('method').click()
        time.sleep(5)
        # 点击录入
        browser.find_element_by_xpath('/html/body/form/table[2]/tbody/tr[3]/td[10]/a').click()

        for stu_num, score in v.items():
            handles = browser.window_handles  # 获得所有窗口句柄
            browser.switch_to.window(handles[-1])  # 取最新的
            time.sleep(3)
            browser.find_element_by_xpath('/html/body/form/table/tbody/tr[2]/td[4]/input').clear()
            browser.find_element_by_xpath('/html/body/form/table/tbody/tr[2]/td[4]/input').send_keys(stu_num)
            # 点击查找进入下一页
            browser.find_element_by_xpath('/html/body/form/p/input').click()

            handles = browser.window_handles  # 获得所有窗口句柄
            browser.switch_to.window(handles[-1])  # 取最新的
            time.sleep(3)
            # print(f'当前学生成绩{new_score}')
            # 修改成绩
            js = f'document.querySelector("body > form > table:nth-child(15) > tbody > tr:nth-child(5) > td > input[type=hidden]:nth-child(2)").value="{str(score)}";'

            browser.execute_script(js)

            # 点击保存
            browser.find_element_by_xpath('/html/body/form/p[1]/input').click()
            # 如果有弹出框 点击确定
            if alert_is_present(browser):
                browser.switch_to.alert.accept()
                print('录入成功')
            # 写入日志 学号+试卷号+成绩
            with open('log.txt', 'a+') as f:
                f.write(stu_num + ' ' + paper_id + ' ' + str(score) + '\n')
            time.sleep(3)
    browser.close()

相关文章

网友评论

      本文标题:成绩登统

      本文链接:https://www.haomeiwen.com/subject/qlkxpltx.html