Python|Helium实现web的自动化
Helium库介绍自动化,通俗来讲是通过程序的自动运行来替代人为的操作,即在没有人的参与下同样达到人们想要达到的目的。在网上搜索web自动化,最先看到的一定是Selenium,这是一个专门的web自动化工具,它的兼容性极强,所以被广泛使用。而Helium是Selenium的一个封装,简化了selenium的一些api,用起来更加简洁,但两者在使用上来说是完全不冲突的。因为Helium兼容性低,更新慢且存在一些bug,所以在一些大型项目的使用时仍使用Selenium,而通常一些简单的任务可以用Helium完成。Helium的安装仍然可以使用pip进行:pip install Helium自动化实例Helium实现web自动化即通过自己内嵌的页面进行访问,通过找到元素位置完成填写,点击等操作。接下来我们以疫情期间健康填报系统为实例进行讲解(注:防疫人人有责,本文仅为实例,具体填写内容应根据每人情况准确填写)。首先我们应该了解每天填写的具体过程:打开页面-填写用户与密码-单击“下一步”-选择,填写具体情况-点击“提交”。这也就是我们自动化要代替我们完成的所有操作。接下来就是实战演示,首先打开内置页面浏览器,通过start_chrome()来通过chrome环境访问网址:from helium import *driver = start_chrome("http://health.sctu.edu.cn:56666/login.aspx")
图2.1 打开页面页面打开,然后我们开始分析页面我们需要在用户框中填入我们的用户名,密码框中填入密码,然后点击下一步。所以我们通过源代码来找这三个元素分别的位置,其实通过chrome的元素源代码查询功能很容易就找到。
图2.2 各元素位置我们可以看到这三个位置id分别为TextBox1,TextBox2,Submit,当然我们也可以通过name,type等属性来确定元素,这里只是一种方法。接下来,有了元素位置,我们就要进行填写与点击了。un = "***"pw = "***"username = driver.find_element_by_id("TextBox1")password = driver.find_element_by_id("TextBox2")write(un, into=username)write(pw, into=password)enter = driver.find_element_by_id("Submit")click(enter)首先确定我们的用户名un和密码pw,通过find_element_by_id()的方式确定两个元素位置。write(***,into=***)的方式写入,into= 后面的即是填入的位置,如果没有into= ,即默认网页第一个填写位置填写。enter就是代表着“下一步”的位置,通过click单击。到此我们就登陆进入界面了,我们每天填写的同学都知道,我们每个人的界面都有记忆功能,对于一些几乎不变的内容服务器其实是保存了的,我们需要填写的只有五个内容,即按五个键,这四个键我们同样使用chrome的开发者功能进行查找,这里就不再赘述,这里我得到的五个id依次为r7_2,r12_2,z11_1,r20_2,r21_2,同样依照上方找“下一步”的方式来查找这四个元素并单击,然后单击“提交”,这里提交对应id为“tj”,然后就完成了。接下来就执行这个文件,内置浏览器就会弹出,执行一系列我们想让它做的操作,帮助我们快速且简便的完成系统填报。结语Web自动化其实在我们的生活学习中可以有很大用处,比如登陆网站自动抢票,完成网页的自动签到等等。但本文实例不建议使用,同学们应当正确并且如实填报健康系统,千万不要瞒报以及不报。END实习主编 | 王楠岚责 编 | 李和龙where2go 团队微信号:算法与编程之美