北邮校园网自动登录

   1、登录VPN

      想必大家的第二学期都是在家度过的,既然脱离了校园网的环境,想要查课表和成绩就必须要登录VPN。

       登录的步骤为:1、输入用户名

                                2、输入密码

                                3、点击“登录”按钮

    

 代码如下,别忘了强制等待

#登录VPN
def login_vpn():
    #用户名
    driver.find_element(By.CSS_SELECTOR, '#user_name').send_keys(bupt_username1)
    time.sleep(1)
    #密码
    driver.find_element(By.CSS_SELECTOR, '.password-input>input').send_keys(bupt_password1)
    time.sleep(1)
    # 点击登陆按钮
    driver.find_element(By.CSS_SELECTOR, 'button').click()
    #进入信息门户
    driver.find_element(By.CSS_SELECTOR, '.block-group__item__wrap').click()
    time.sleep(1)

 

2、登录信息门户系统

过程类似,但要注意,信息门户系统登录界面的输入框和登录按钮在嵌套页面里,因此需要附加一段进入嵌套页面的代码,这一点和登录VPN不同。

#登录信息门户
def login_window():
    #找到iframe的id属性
    switch_window(1)
    # time.sleep(3)
    iframe = driver.find_element(By.CSS_SELECTOR, '#loginIframe')
    # time.sleep(3)
    driver.switch_to.frame(iframe)
    #输入用户名和密码
    driver.find_element(By.CSS_SELECTOR, '.item-box:nth-child(1) input:nth-child(1)#username').send_keys(bupt_username2)
    time.sleep(2)
    driver.find_element(By.CSS_SELECTOR, '.item-box:nth-child(1) input:nth-child(1)#password').send_keys(bupt_password2)
    time.sleep(2)
    driver.find_element(By.CSS_SELECTOR, '.submit-btn:nth-child(1)').click()

3、登录本科教务系统

       登录本科教务系统的过程分两步,第一步是点击“本科教务系统”按钮,第二步是输入用户名、密码并登录。

 

#点击进入本科教务系统
def switch_to_JiaowuSystem():

    time.sleep(2)
    #鼠标下拉页面
    js= 'document.documentElement.scrollTop=document.documentElement.scrollHeight'
    driver.execute_script(js)
    time.sleep(2)
    driver.find_element(By.CSS_SELECTOR, '.col-xs-3:nth-child(1)').click()


#登录本科教务系统
def login_JiaowuSystem():
    #跳转到窗口3
    switch_window(2)

    #输入用户名和密码
    driver.find_element(By.CSS_SELECTOR, '#userAccount').send_keys(bupt_username3)
    time.sleep(2)
    driver.find_element(By.CSS_SELECTOR, '#userPassword').send_keys(bupt_password3)
    time.sleep(2)
    driver.find_element(By.CSS_SELECTOR, 'button').click()

#切换页面
def switch_window(page):
    windows = driver.window_handles
    driver.switch_to.window(windows[page])

       注意,由于此时已经开启多个浏览器窗口,一定不要忘了加切换浏览器窗口的函数,否则将运行不出结果。

4、完整代码

        注:就本代码而言,鉴于北邮校园网在一次性输对密码的情况下不需要验证码,本人未考虑验证码相关的问题。如果大家在跑程序的过程遇到出现验证码的情况,请关闭程序再跑,根据本人经验,跑个三四次就不会出现验证码了。

源码链接如下:链接:https://pan.baidu.com/s/1lehe-X-ttTpUvsitHlOSuQ
                        提取码:h2gy
来自百度网盘超级会员V4的分享

该压缩包里已经包含了谷歌和火狐的驱动,建议使用谷歌浏览器,如果驱动不适配,请自行更换适配的驱动

from constants import bupt_password1, bupt_password2,bupt_password3
from constants import bupt_username1,bupt_username2,bupt_username3
import time
from selenium import webdriver  # 浏览器对象
from selenium.webdriver.common.by import By  # 定位器功能



#登录VPN
def login_vpn():
    #用户名
    driver.find_element(By.CSS_SELECTOR, '#user_name').send_keys(bupt_username1)
    time.sleep(1)
    #密码
    driver.find_element(By.CSS_SELECTOR, '.password-input>input').send_keys(bupt_password1)
    time.sleep(1)
    # 点击登陆按钮
    driver.find_element(By.CSS_SELECTOR, 'button').click()
    #进入信息门户
    driver.find_element(By.CSS_SELECTOR, '.block-group__item__wrap').click()
    time.sleep(1)


#登录信息门户
def login_window():
    #找到iframe的id属性
    switch_window(1)
    # time.sleep(3)
    iframe = driver.find_element(By.CSS_SELECTOR, '#loginIframe')
    # time.sleep(3)
    driver.switch_to.frame(iframe)
    #输入用户名和密码
    driver.find_element(By.CSS_SELECTOR, '.item-box:nth-child(1) input:nth-child(1)#username').send_keys(bupt_username2)
    time.sleep(2)
    driver.find_element(By.CSS_SELECTOR, '.item-box:nth-child(1) input:nth-child(1)#password').send_keys(bupt_password2)
    time.sleep(2)
    driver.find_element(By.CSS_SELECTOR, '.submit-btn:nth-child(1)').click()


#点击进入本科教务系统
def switch_to_JiaowuSystem():

    time.sleep(2)
    #鼠标下拉页面
    js= 'document.documentElement.scrollTop=document.documentElement.scrollHeight'
    driver.execute_script(js)
    time.sleep(2)
    driver.find_element(By.CSS_SELECTOR, '.col-xs-3:nth-child(1)').click()

#登录本科教务系统
def login_JiaowuSystem():
    #跳转到窗口3
    switch_window(2)

    #输入用户名和密码
    driver.find_element(By.CSS_SELECTOR, '#userAccount').send_keys(bupt_username3)
    time.sleep(2)
    driver.find_element(By.CSS_SELECTOR, '#userPassword').send_keys(bupt_password3)
    time.sleep(2)
    driver.find_element(By.CSS_SELECTOR, 'button').click()

#切换页面
def switch_window(page):
    windows = driver.window_handles
    driver.switch_to.window(windows[page])

if __name__ == '__main__':
    driver = webdriver.Chrome()
    driver.get('https://webvpn.bupt.edu.cn/login')
    driver.implicitly_wait(10)
    driver.maximize_window()
    login_vpn()
    login_window()
    switch_to_JiaowuSystem()
    login_JiaowuSystem()
    input()  # 阻止浏览器关闭
    driver.quit()
bupt_username1 = '请自行输入'
bupt_password1= '请自行输入'
bupt_username2 = '请自行输入'
bupt_password2= '请自行输入'
bupt_username3= '请自行输入'
bupt_password3= '请自行输入'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值