admin 管理员组文章数量: 1184232
本篇文章要做的是关于一个自动化测试。
目录
一、准备工具
1、编程语言及编译器
2、需要的包
3、浏览器
4、你需要在你的Python提前安装库。
二、代码部分
1、登录页面
2、下一步是进入主页
3、选课页面
4、选课页面
5、无限重复
完整代码如下:(注意替换代码噢)
参考链接:
一、准备工具
1、编程语言及编译器
Python,编译器是Pycharm。
2、需要的包
time包:用于等待系统弹窗结束
selenium包:自动化测试,也就是这个自动化测试的核心。
3、浏览器
我用的是谷歌浏览器,其他的浏览器能不能用我的代码我不太了解,但是谷歌浏览器可以运行的。
浏览器需要一个驱动,这个的话,链接在这里:
https://chromedriver.storage.googleapis/index.html
你需要选择你的谷歌浏览器版本对应的驱动版本,然后解压。
这部分内容可以百度就行,有很多教程,我就不多啰嗦。搜索的内容无非是:谷歌浏览器驱动、selenium之类的,就会有这些东西。因为我昨晚搜过,有些同学已经写好了教程,使用代码的时候,注意看就行。
https://blog.csdn/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/video/BV1Z4411o7TA?p=26
代码语句就是:(需要win+r进入“运行”,然后输入“cmd”,敲回车,再输入代码。)
pip install selenium
二、代码部分
我按照逻辑顺序,一一说明。
1、登录页面
我们需要输入用户名密码,如下图所示。
这部分代码是这样的:
在这个版块的代码第4行和第6行。把那块文字内容替换为你的用户名和密码就行。send_keys()这玩意就是自动帮你填信息,直接替换就行。引号不要删,‘\n’不要删。
想要知道具体原理的话,就自己百度一下,这块内容就行。这里我们说怎么用。
#登录页面
xk=browser.get("http://jw.ahnu.edu/student/home?refer=http://jw.ahnu.edu/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)
第一步:在当前页面,按下F12,进入调试模式。(如图2)
第二步:找到这的网页源代码就行,看看就可以退出了。(前两步是废话,具体直接根据源代码,对照我说的步骤修改就可以了)
第三步:输入Python代码:
new=browser.get("http://jw.ahnu.edu/student/for-std/course-select")
3、选课页面
如果一切顺利的话,现在程序应该正常进入进入了选课页面。
还是和第二步主页一样,锁定开始选课按钮的位置,找到每个人的自己的id。然后就记下来,不要遗忘,后期会用到。
该部分代码如下:(具体意思在代码段里面),注意第4行代码,id要替换,不然进不去。
#选课页面
#进入选课页面
#将下面链接中,我写的那个id那个地方,换成我在上面说的,你要记的id。
into=browser.get("http://jw.ahnu.edu/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_handles
browser.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_handles
browser.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_handles
browser.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/student/home?refer=http://jw.ahnu.edu/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/student/for-std/course-select")
#选课页面
into=browser.get("http://jw.ahnu.edu/student/for-std/course-select/2308/turn/403/select")
time.sleep(7)
windows = browser.window_handles
browser.switch_to.window(windows[-1])
browser.find_element_by_id('bulletinBtn').click()
#特色课程
windows = browser.window_handles
browser.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_handles
browser.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,如果你有不明白的地方,可以随时联系我。这样我们才能进步。
本文标签: 代码 网页 测试 selenium python
版权声明:本文标题:Selenium:网页自动化测试代码(Python版) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1765842017a3419437.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论