教务管理信息系统 一键评价课程脚本!谁还手动评啊!

121 阅读2分钟

前言

python + selenium 实现

一、这样评课危险吗?

Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。 因此此脚本完全模拟手动操作,请放心使用。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

二、使用步骤

1.配置python + selenium环境

安装selenium:打开windows的cmd框,输入

pip install Selenium

并安装浏览器驱动 Chrome驱动文件下载:点击下载Chrome驱动文件 Firefox驱动文件下载:点击下载Firefox驱动文件 配置环境变量 配置环境变量参考教程

python脚本文件下载

get_evaluation_done.py

下载界面有使用说明,需要研究代码的请往下看

2.脚本代码

#coding:utf8
from selenium import webdriver
import time
from selenium.webdriver.remote.webelement import WebElement

class evaluate:
    def __int__(self):
        self.driver = webdriver.Chrome()

    def login(self,id,pwd):
        
        self.url="http://202.204.105.22/academic/index_new.jsp"
        self.brower =webdriver.Chrome()
        brower=self.brower
        page =brower.get(self.url)
        username=brower.find_element_by_xpath('/html/body/form/div[2]/div/div[3]/input')
        password=brower.find_element_by_xpath('/html/body/form/div[2]/div/div[4]/input')
        username.send_keys(id)
        password.send_keys(pwd)
        time.sleep(7) #在这7秒内要完成输入验证码! 不然会报错。请重开脚本直至验证码输入正确 自动登录为止
        brower.find_element_by_xpath('/html/body/form/div[2]/div/div[7]/input').click()
        time.sleep(2)
        
        iframe = brower.find_element_by_tag_name("iframe")
        brower.switch_to.frame(iframe)#跳入第一层iframe中
        brower.switch_to.frame("menuFrame")#跳入二(1)frame中
        #不可连续调用进入两层 会报错
        brower.find_element_by_xpath('//*[@id="li25"]/a').click()#进入评课界面
        brower.switch_to_default_content()#释放全部进入的frame层

        brower.switch_to.frame(iframe)#跳入第一层iframe中
        brower.switch_to.frame("mainFrame")#跳入二(2)frame中
        time.sleep(0.5)
        eva_table1 = brower.find_element_by_xpath('/html/body/center/table[2]/tbody')#评价表1的tbody
        rows = eva_table1.find_elements_by_class_name('infolist_common')#获取所选所有课程元素
        course_numbers = len(rows)
        #print(course_numbers)
        temp1 = 2
        while course_numbers > 0:#遍历课程列表
            brower.find_element_by_xpath('/html/body/center/table[2]/tbody/tr['+ str(temp1) +']/td[4]/a').click()
            time.sleep(1)
            temp1 += 1
            course_numbers -= 1
            temp2 = 2
            eva_numbers = 20 #评价条数
            while eva_numbers > 0:#遍历评价选项列表
                 brower.find_element_by_xpath('/html/body/center/table[2]/tbody/tr/td/form/table[1]/tbody/tr['+ str(temp2) +']/td[3]/input[5]').click()
                 temp2 += 1
                 eva_numbers -= 1
            brower.find_element_by_xpath('/html/body/center/table[2]/tbody/tr/td/form/table[2]/tbody/tr/td/input[1]').click()
            time.sleep(1)
            # 获取alert对话框
            dig_alert = brower.switch_to.alert
            time.sleep(1)
            # alert对话框属于警告对话框,我们这里只能接受弹窗
            dig_alert.accept()
            time.sleep(3)
        brower.find

if __name__ == '__main__':
    print("请输入学号(10位):")
    username = input()
    print("请输入密码:")
    pwd = input()
    pj = evaluate()
    pj.login(username,pwd)