Selenium:网页自动化测试代码(Python版)

 2023-09-05 阅读 104 评论 0

摘要:本篇文章要做的是关于一个自动化测试。 目录 一、准备工具 1、编程语言及编译器 2、需要的包 3、浏览器 4、你需要在你的Python提前安装库。 二、代码部分 1、登录页面 2、下一步是进入主页 3、选课页面 4、选课页面 5、无限重复 完整代码如下:ÿ


本篇文章要做的是关于一个自动化测试。

目录

一、准备工具

     1、编程语言及编译器

     2、需要的包

    3、浏览器

     4、你需要在你的Python提前安装库。

二、代码部分

      1、登录页面

         2、下一步是进入主页

    3、选课页面

4、选课页面

5、无限重复

完整代码如下:(注意替换代码噢)

参考链接:


一、准备工具


     1、编程语言及编译器


              Python,编译器是Pycharm。


     2、需要的包


              time包:用于等待系统弹窗结束
              selenium包:自动化测试,也就是这个自动化测试的核心。


    3、浏览器


              我用的是谷歌浏览器,其他的浏览器能不能用我的代码我不太了解,但是谷歌浏览器可以运行的。
              浏览器需要一个驱动,这个的话,链接在这里:
              https://chromedriver.storage.googleapis.com/index.html
              你需要选择你的谷歌浏览器版本对应的驱动版本,然后解压。
              这部分内容可以百度就行,有很多教程,我就不多啰嗦。搜索的内容无非是:谷歌浏览器驱动、selenium之类的,就会有这些东西。因为我昨晚搜过,有些同学已经写好了教程,使用代码的时候,注意看就行。

           https://blog.csdn.net/seedinspring/article/details/89850331?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=a71e0228-0e81-4e7f-b98a-309c4481d485&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

             

     4、你需要在你的Python提前安装库。

 

            必要的安装知识见此链接:

                 http://www.python3.vip/tut/auto/selenium/01/

           配套视频

                https://www.bilibili.com/video/BV1Z4411o7TA?p=26

代码语句就是:(需要win+r进入“运行”,然后输入“cmd”,敲回车,再输入代码。)

pip install selenium

 

二、代码部分


      我按照逻辑顺序,一一说明。


      1、登录页面


                 我们需要输入用户名密码,如下图所示。

              

              这部分代码是这样的:

                       在这个版块的代码第4行和第6行。把那块文字内容替换为你的用户名和密码就行。send_keys()这玩意就是自动帮你填信息,直接替换就行。引号不要删,‘\n’不要删。

                                  想要知道具体原理的话,就自己百度一下,这块内容就行。这里我们说怎么用。             

#登录页面xk=browser.get("http://jw.ahnu.edu.cn/student/home?refer=http://jw.ahnu.edu.cn/student/for-std/course-select/single-student/turns")name = browser.find_element_by_id('u')name.send_keys('你的用户名\n') #输入用户名password= browser.find_element_by_id('p')password.send_keys('你的密码\n') #输入密码

   

         2、下一步是进入主页

                           我们需要锁定你的选课这个按钮的位置。

                               按照如下的位置,寻找选课的位置。(很重要很重要,如图1)

                              第一步:在当前页面,按下F12,进入调试模式。(如图2)

图1:主页功能栏

                                第一步:在当前页面,按下F12,进入调试模式。(如图2)

图2定位

                                     第二步:找到这的网页源代码就行,看看就可以退出了。(前两步是废话,具体直接根据源代码,对照我说的步骤修改就可以了)

                                    第三步:输入Python代码:

new=browser.get("http://jw.ahnu.edu.cn/student/for-std/course-select")

 

    3、选课页面

                              如果一切顺利的话,现在程序应该正常进入进入了选课页面。

                             还是和第二步主页一样,锁定开始选课按钮的位置,找到每个人的自己的id。然后就记下来,不要遗忘,后期会用到。

                             

确定位置

 

确定id

 

                             该部分代码如下:(具体意思在代码段里面),注意第4行代码,id要替换,不然进不去。

                              

#选课页面#进入选课页面#将下面链接中,我写的那个id那个地方,换成我在上面说的,你要记的id。into=browser.get("http://jw.ahnu.edu.cn/student/for-std/course-select/替换为你的id/turn/403/select")#into.find_element_by_xpath('/html/body/div/div[1]/div/div/div[2]/div[3]/div[2]/a')#睡眠,等待选课页面那个弹出的弹窗可以选择关掉time.sleep(7)#下面三行代码就是关闭这个弹窗windows = browser.window_handlesbrowser.switch_to.window(windows[-1])   #切换到最新出现的弹窗browser.find_element_by_id('bulletinBtn').click() #点击关闭

 

4、选课页面

           在这里,你需要做的事情有点多,我慢慢说。

               a、首先将页面切换到校选课页面。因为默认打开的页面是培养方案,所以首先我们要切换到校选课页面。

               

切换到校选课页面

 

               b、因为我们是24h抢课,所以我们需要确定我们要抢的课。我这里抢的是:汉字与中国文化。(等会你需要在代码里面输入你要抢的课,课程名)

                       

确定你要抢的课

                c、最麻烦的地方,锁定按钮位置,也就是这个选课。因为每个人想要的课不一样,定位会不一样。所以,参见主页的那个F12的方法,看看就会了。

                         分步骤就是:1、按F12,打开调试器    2、通过我说的那个小按钮,确定选课这个按钮对应的网页代码段  3、获取选课按钮的xpath路径。

                               

选课按钮的代码段

                   备注:具体步骤可以这样:不用看上面的分步骤。先在那个选课按钮上,单击右键,会有一个小弹窗,选择“检查”,浏览器会自动锁定这个按钮的代码在哪。然后这个代码段处,单击右键,选择“Copy” ——> 选择“Copy XPath”就行了。然后接下来就是替换代码了。

                  代码段(意思已经注释)

                  

#特色课程#还是切换窗口,回到最新的窗口windows = browser.window_handlesbrowser.switch_to.window(windows[-1])#切换到校选课页面browser.find_element_by_xpath('//*[@id="tabs"]/li[2]/a').click()#输入你要抢的课,,引号不要删browser.find_element_by_xpath('//*[@id="public"]/div[1]/div/div/div/div[1]/input').send_keys('你要抢的课(输入文字)')#把复制的xpath路径放在这里,引号不要删browser.find_element_by_xpath('粘贴你刚刚复制的那个xpath路径').click()

 

5、无限重复

        如果顺利的话,现在你应该完成了自动抢课,但是我们需要不断重复,那么我们需要加个while循环,让他不断循环

       代码段如下:

         

#无限循环#while的判断条件是只要有新的弹窗出现,就说明我们没抢到,所以继续下一次循环
while(len(browser.window_handles)==1):#等待抢课结果time.sleep(2)windows = browser.window_handlesbrowser.switch_to.window(windows[-1])browser.find_element_by_xpath('//*[@id="modal-info-content"]/div[3]/div/div/div[3]/button').click()#把下面这行文字,替换为刚才你复制的那个XPth,冒号不要删browser.find_element_by_xpath('还是放之前说的那个xpath路径').click()

基本上我们整个抢课代码就这样,很简单,如果代码不理解或者我没说清楚,可以百度百度就行。很快就上手了~~

需要修改源代码的地方

完整代码如下:(注意替换代码噢)

from selenium import webdriver
import time
#创建浏览器对象(打开浏览器)
browser = webdriver.Chrome()
browser.implicitly_wait(10)for i in range(0,10) :#登录页面xk=browser.get("http://jw.ahnu.edu.cn/student/home?refer=http://jw.ahnu.edu.cn/student/for-std/course-select/single-student/turns")name = browser.find_element_by_id('u')name.send_keys('你的用户名\n') #输入用户名password= browser.find_element_by_id('p')password.send_keys('你的密码\n') #输入密码#主页new=browser.get("http://jw.ahnu.edu.cn/student/for-std/course-select")#选课页面into=browser.get("http://jw.ahnu.edu.cn/student/for-std/course-select/2308/turn/403/select")time.sleep(7)windows = browser.window_handlesbrowser.switch_to.window(windows[-1])browser.find_element_by_id('bulletinBtn').click()#特色课程windows = browser.window_handlesbrowser.switch_to.window(windows[-1])browser.find_element_by_xpath('//*[@id="tabs"]/li[2]/a').click()browser.find_element_by_xpath('//*[@id="public"]/div[1]/div/div/div/div[1]/input').send_keys('你要抢的课')browser.find_element_by_xpath('粘贴xpath的路径').click()while(len(browser.window_handles)==1):time.sleep(2)windows = browser.window_handlesbrowser.switch_to.window(windows[-1])browser.find_element_by_xpath('//*[@id="modal-info-content"]/div[3]/div/div/div[3]/button').click()browser.find_element_by_xpath('粘贴xpath的路径').click()break

参考链接:

 1、selenium相关知识:http://www.python3.vip/tut/auto/selenium/01/ 

技术层面欢迎大佬们和我讨论,我在锻炼我的代码能力,希望和大佬们一起讨论,了解更多知识。

我的QQ是:871612098,如果你有不明白的地方,可以随时联系我。这样我们才能进步。

 

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/111.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息