前言
python + selenium 實現
一、這樣評課危險嗎?Selenium是一個用於測試網站的自動化測試工具,支援各種瀏覽器包括Chrome、Firefox、Safari等主流介面瀏覽器,同時也支援phantomJS無介面瀏覽器。 因此此指令碼完全模擬手動操作,請放心使用。
二、使用步驟1.配置python + selenium環境安裝selenium:開啟windows的cmd框,輸入
python指令碼檔案下載
get_evaluation_done.py
下載介面有使用說明,需要研究程式碼的請往下看
2.指令碼程式碼#coding:utf8from selenium import webdriverimport timefrom selenium.webdriver.remote.webelement import WebElementclass 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.findif __name__ == '__main__': print("請輸入學號(10位):") username = input() print("請輸入密碼:") pwd = input() pj = evaluate() pj.login(username,pwd)
最新評論