【WEB 自动化工具】Selenium 登录账号 Python 脚本

       Selenium 浏览器自动化的优点:需求实现简单,所见即所得,不用对网页进行抓包、数据分析等复杂操作。缺点:模拟人工点击,时间成本高,处理效率低。

       本文就 Selenium 进行简单的应用和介绍,以自动登录南工大校园网账号为例。如需南京工业大学校园网自动认证,请参考博文,欢迎交流:

                                   南工大校园网自动认证登录

 1.写在前面的话

       1).本脚本运行环境为python,请同学们自行装好对应selenium库,对应浏览器驱动,建议使用 chrome,edge 等浏览器。

       2).本教程使用Edge浏览器,现在微软强制更新,应该都有Edge了吧(/doge)

                  chrome浏览器下载驱动:http://chromedriver.storage.googleapis.com/index.html

                  edge浏览器请下载驱动:Microsoft Edge Driver - Microsoft Edge Developer

2.关于使用说明

1)配置浏览器驱动及信息

     driver_url:上面下载的驱动找个地方放好,路径随意,我是放在Python的Scripts目录下。

##########################################################
driver_url = "C:\\ 填入浏览器驱动路径 \\msedgedriver.exe"
##########################################################
username = "填入自己的学号"  # 填入自己的学号
passwd   = "填入自己的密码"  # 填入自己的密码
##########################################################

2)获取登录页面元素xpath

   drivel 就是指向你所用的驱动的,此处以Edge为例,如果用Chrome,就把对应的webdriver.Edge 改成 webdriver.Chrome

   url是上网认证的网址,此处以南工网址为例。

   user_xpath,pwd_xpath 等需要自行获取网页元素的xpath,此处是已经填写好的南工认证的相关xpath

driver = webdriver.Edge(executable_path=driver_url)

url = "https://i.njtech.edu.cn/index.html"  # 南工校园网网址
user_xpath = '//*[@id="username"]'
pwd_xpath = '//*[@id="password"]'
channel_xpath = '//*[@id="channelshow"]'
cmcc_xpath = '//*[@id="fm1"]/div/div[1]/div[1]/div[4]/div/span[2]'
button_xpath = '//*[@id="login"]'

3)登录函数的自动点击事件

    详细的注释在代码块中,大致流程:1.输入学号密码     2.选择运营商     3.点击登录

def auto_login(url,username,passwd,user_xpath,pwd_xpath,channel_xpath,cmcc_xpath,button_xpath,):
    driver.maximize_window()  # 最大化窗口
    driver.implicitly_wait(6)  # 6秒内找到元素则立即执行
    driver.get(url)  # 获取网页
    time.sleep(0.1)


    # 通过xpath找到文本框并传入文本
    driver.find_element_by_xpath(user_xpath).send_keys(username)
    driver.find_element_by_xpath(pwd_xpath).send_keys(passwd)

    time.sleep(0.1)

    # 点击校园网按钮 -> 点击中国移动 -> 点击登录按钮
    driver.find_element_by_xpath(channel_xpath).click()
    driver.find_element_by_xpath(cmcc_xpath).click()
    driver.find_element_by_xpath(button_xpath).click()

    # 登录后关闭浏览器
    driver.quit()

3.完整的源代码

### 本脚本使用selenium 4.0,请安装4.0及以上的库

from selenium import webdriver
from time import sleep
from subprocess import run, PIPE
##################################################
#                                                #
#  脚本功能:自动点击浏览器实现登录南工, 实现网络认证 #
#                                                #
##################################################
#                                                #
#      本代码已经配置好南工网页认证的登录信息       #
#                                                #
#      自己只需填入: 浏览器驱动路径,学号,密码       #
#                                                #
##################################################


##########################################################
#                关于driver_url:                         #
#         下载浏览器驱动用以自动点击网页登陆                #
# 我这里用的是edge浏览器驱动,其他浏览器自己去下载对应的驱动  #
#   然后自己找个路径放好, 就是替换下面的driver_url的路径     #
#                                                        #
##########################################################
driver_url = "C:\\填入浏览器驱动路径\\msedgedriver.exe"
username = "填入自己的学号"  # 填入自己的学号
passwd   = "填入自己的密码"  # 填入自己的密码
##########################################################


user_xpath = '//*[@id="username"]'
pwd_xpath = '//*[@id="password"]'
channel_xpath = '//*[@id="channelshow"]'
cmcc_xpath = '//*[@id="fm1"]/div/div[1]/div[1]/div[4]/div/span[2]'
    ### span[1], span[2], span[3]分别对应校园内网、中国移动、中国电信
    ### 更换运营商仅需修改span[2]中数字即可
button_xpath = '//*[@id="login"]'
url = "https://i.njtech.edu.cn/index.html"  # 南工校园网网址

options = webdriver.EdgeOptions()
options.use_chromium = True
options.add_argument("headless")
options.add_argument("disable-gpu")
options.add_argument("log-level=3")
driver = webdriver.Edge(executable_path=driver_url, options=options)

def AutoLogin(
    url,
    username,
    passwd,
    user_xpath,
    pwd_xpath,
    channel_xpath,
    cmcc_xpath,
    button_xpath):

    print("\n  >>> 启动认证中")
    driver.maximize_window()  # 最大化窗口
    driver.implicitly_wait(6) # 6秒内找到元素则立即执行
    driver.get(url)  # 获取网页
    sleep(0.1)

    print("\n  >>> 填充密码中")
    # 清空文本框已存在内容
    driver.find_element_by_xpath(user_xpath).clear()
    driver.find_element_by_xpath(pwd_xpath).clear()
    # 通过xpath找到文本框并传入文本
    driver.find_element_by_xpath(user_xpath).send_keys(username)
    driver.find_element_by_xpath(pwd_xpath).send_keys(passwd)
    sleep(0.1)

    # 点击校园网按钮 -> 点击中国移动 -> 点击登录按钮
    try:
        driver.find_element_by_xpath(channel_xpath).click()
        driver.find_element_by_xpath(cmcc_xpath).click()
    except:
        pass
    driver.find_element_by_xpath(button_xpath).click()

    print("\n  >>> 登录成功 !!")
    driver.quit()       # 登录后关闭浏览器

def isConnect():
    r = run('ping www.baidu.com -n 1', stdout=PIPE).returncode
    if r == 0:
        return True
    else:
        return False

AutoLogin(
    url=url,
    username=username,
    passwd=passwd,
    user_xpath=user_xpath,
    pwd_xpath=pwd_xpath,
    channel_xpath=channel_xpath,
    cmcc_xpath=cmcc_xpath,
    button_xpath=button_xpath  )


while True:
    if IsConnect() == False:
        AutoLogin(
            url=url,
            username=username,
            passwd=passwd,
            user_xpath=user_xpath,
            pwd_xpath=pwd_xpath,
            channel_xpath=channel_xpath,
            cmcc_xpath=cmcc_xpath,
            button_xpath=button_xpath  )
    sleep(60 * 5)  # 暂停程序, 每5分钟检测网络, 若断网则重启

4.写在最后的话

     文章冗长,感谢您的耐心阅读!希望用您可爱的手手给俺点个赞,谢谢!

     我是 Herk,一名正在努力不掉发😂的在校大学生,希望与您一起交流,共同学习。

     

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Web自动化测试是指通过编写自动化脚本来模拟用户在Web应用程序上的操作,以验证应用程序的功能和性能。Selenium是一种流行的Web自动化测试工具,而Python是一种常用的编程语言。结合使用SeleniumPython,可以实现高效的Web自动化测试。 要使用Selenium进行PythonWeb自动化测试,首先需要搭建相应的环境。可以按照以下步骤进行搭建: 1. 安装Python:访问Python官方网站,下载并安装Python的最新版本。 2. 安装Selenium:使用Python的包管理工具pip,在命令行中执行以下命令安装Selenium包: ``` pip install selenium ``` 3. 下载浏览器驱动:根据你所使用的浏览器类型,下载相应的浏览器驱动。例如,如果你使用Chrome浏览器,可以下载Chrome浏览器驱动。 4. 配置浏览器驱动:将下载的浏览器驱动添加到系统的环境变量中,这样Selenium才能找到并使用它。 完成环境搭建后,就可以编写自动化测试脚本了。以下是一个简单的示例脚本: ```python from selenium import webdriver # 创建WebDriver对象,启动浏览器 driver = webdriver.Chrome() # 打开网页 driver.get('https://www.baidu.com') # 查找搜索框并输入内容 input_box = driver.find_element_by_css_selector('#kw') input_box.send_keys('selenium') # 查找“百度一下”按钮并点击 submit_button = driver.find_element_by_css_selector('#su') submit_button.click() # 检查搜索结果中是否包含关键字 assert 'selenium' in driver.title # 关闭浏览器 driver.quit() ``` 以上脚本使用Selenium的API来模拟用户在百度搜索引擎上的操作,并检查搜索结果中是否包含关键字"selenium"。可以根据实际需求编写更复杂的自动化测试脚本。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Web自动化测试环境搭建之Python+Selenium](https://download.csdn.net/download/weixin_38690402/15443144)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Web自动化测试 —— 测试环境搭建 (Selenium+Python)及视频操作](https://blog.csdn.net/Faith_Lzt/article/details/119187797)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [如何使用 Python+selenium 进行 web 自动化测试?](https://blog.csdn.net/caixiangting/article/details/130581863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值