HZAU新版正方教务系统一键教学评价
新的一輪教學評價又開始了,每門課要點十幾次,課程多的話可能得點一兩百次,想起去年有大佬做過自動評價的腳本,但不能用了,因為教務系統的代碼有更改,而且不能全滿分了,所以照著大佬的代碼摸索了一下,改出了能用的腳本。不懂代碼的話可以看第一部分直接上手用,懂一點代碼而且有興趣的話可以看一下第二部分,了解一下如何做這樣的腳本。
一、授人以魚
以下以360瀏覽器為例,其它瀏覽器大同小異。
1.首先打開教務系統,進入到學生評價頁面,如下圖。如果課多的話,改一下每頁顯示的課程數,盡量一個頁面顯示完所有課。
2.按F12進入開發者模式(筆記本可能需要按fn+F12),或者右鍵-審查元素也可以進入開發者模式
3.切換到第二項console(有的瀏覽器譯為終端),如下圖的1
4.復制下面的代碼,粘貼到上一步的console下面的輸入區域(即上圖的2),然后回車即可一鍵評價
var num = document.getElementById("tempGrid").rows.length-1 console.log('共'+num+'門課') var i=1; var timer = setInterval(() => {if(i == num+1) {console.log('評價結束')clearInterval(timer)}else{console.log('開始評第'+i+'門課')var body = document.getElementById(i++)if(body!=null) body.click();setTimeout(() => {var radios = document.getElementsByClassName('radio-pjf');var j=0;var r=Math.floor(Math.random()*5)+3;[...radios].forEach((item) => {if(r==j){if(item.getAttribute("data-dyf")=="4") {item.checked = truej++}}else{if(item.getAttribute("data-dyf")=="5") {item.checked = truej++}}})document.getElementById('btn_xspj_bc').click()document.getElementById('btn_xspj_tj').click()console.log('第'+(i-1)+'門課已提交') },3000)} },6000)二、授人以漁
這部分我分享一下我是如何做出這個腳本的,以后如果我的代碼失效的話,大家可以知道怎么改。
1.首先,我們知道,對獲取到的html元素調用click()方法可以模擬一次點擊,所以我們首先需要獲取到左側課程的HTML元素。
2.通過分析這個頁面的HTML源碼,我發現在源碼里,每門課都有一個id,而且id是從1開始的,所以我們可以使用document.getElementById(id)這個方法獲取到每門課的HTML元素
3.在點擊了左側的課程之后,右側出現了評分表,還是通過分析代碼,評分表的classname是radio-pjf,通過document.getElementsByClassName('radio-pjf');可以獲得評分表的HTML對象。。我們需要選10個5分和1個4分,評分項中教學過程權重較低,我們可以把4分選在這里,通過一個隨機數來實現(這部分是參考別人的代碼)
?
var radios = document.getElementsByClassName('radio-pjf');var j=0;var r=Math.floor(Math.random()*5)+3;[...radios].forEach((item) => {if(r==j){if(item.getAttribute("data-dyf")=="4") {item.checked = truej++}}else{if(item.getAttribute("data-dyf")=="5") {item.checked = truej++}}})5.把分數選完之后,我們需要保存提交,分析一下源碼,找到【保存】和【提交】這兩個按鈕的代碼,發現它們的id分別是btn_xspj_bc、btn_xspj_tj,使用document.getElementById()獲取元素并點擊即可
document.getElementById('btn_xspj_bc').click() document.getElementById('btn_xspj_tj').click()?
結語
主要是需要分析一下源碼,知道如何獲取HTML元素,如果以后教務系統的代碼和規則有更改的話,稍微改一下我的代碼應該就能用了。不過奇怪的是,不可以通過獲取左側課程的時候不能通過for循環var?body?=?document.getElementById(i++)來獲取相應課程,學藝不精不知道是為什么,這里是參考大佬的代碼。
參考
https://mubu.com/doc/faqLPTsU50
總結
以上是生活随笔為你收集整理的HZAU新版正方教务系统一键教学评价的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 已知IP地址和子网掩码求出网络地址、广播
- 下一篇: LAD-lasso和线性规划算法