前言
python + selenium 实现
一、这样评课危险吗?
Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。 因此此脚本完全模拟手动操作,请放心使用。
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
二、使用步骤
1.配置python + selenium环境
安装selenium:打开windows的cmd框,输入
pip install Selenium
复制代码
并安装浏览器驱动 Chrome驱动文件下载:点击下载Chrome驱动文件 Firefox驱动文件下载:点击下载Firefox驱动文件 配置环境变量 配置环境变量参考教程
python脚本文件下载
下载界面有使用说明,需要研究代码的请往下看
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)
复制代码