需求说明我们需要登录考勤系统(网页版,非手机端)进行签到,如果不想每天早起签到,可以写个程序实现这个功能.业务整理通过长时间的早起打卡,我找到了规律。我只是每天不停地点击和签到。都是常规操作。何不自己写个程序加在Windows上实现自动登录,这样就不用天天浪费时间了。关于签到这件小事。Justdoit,我发现我日常的签到行为可以概括为“登录系统——输入用户——密码——点击点击——退出系统”。有一天在网上浏览社区的时候,突然看到selenium的说明,然后查了相关资料,发现selenium还是蛮好用的。一句话,selenium会帮我们自动输入用户名和密码然后点击什么,正好和我的需求不谋而合。至于selenium怎么安装,轮子就不赘述了。我安装的webdriver是Firefox,因为这个考勤系统很奇葩,只允许Firefox登录。至于程序的思路,我是这样设计的,把用户名和密码放在json文件里,然后然后用Python阅读它。Selenium帮我登录、登录、退出系统等,登录完成后会发邮件给我。.因此,从这篇文章中,你还可以了解到Python如何读取json文件,Python如何使用邮箱发送邮件等等,真是一举多得。程序实现需要导入的包,fromseleniumimportwebdriver表示从selenium中导入webdriver随机停留时间,表示随机延迟6秒到10秒开启登录考勤系统,webdriver.Firefox()表示打开一个Firefox窗口清除用户名框和密码框,同时从设置的json中获取用户名和密码,登录,清除方法是清除当前窗口已有的输入数据,然后需要点击通过find_element_by_css_selector、find_element_by_xpath、find_element_by_id等方法对应的button,一般情况下通过css或者id或者name可以找到button的值。如果不行,可以通过Firefox上的扩展程序找到按钮的xpath。如果其他属性不好确定,就用find_element_by_xpath,基本上是万能的。设置需要签到的人的账号密码信息,一开始我是直接在字符串数组中指定的。后来为了软件能够广泛使用,我加入了json配置文件,从json配置文件中获取用户信息和密码。可以看这里Python是如何读取json文件的userinfo.json用户名密码信息的,如下图,保存在当前目录下,然后发邮件通知main方法执行调度执行.也可以手动执行,pythonqiandao-4-0.py将程序或脚本添加到Windows的计划任务中,指定Python的安装路径D:\WinPython-64bit-3.4.4.4Qt5\python-3.4.4.amd64\python.exe添加参数,表示登录脚本所在路径E:\1.4-Pythonsourcedata\automaticsign-inscript-python-(version4.0)-2\qiandao-4-0.pystartsfrom,表示定时任务启动时运行的目录。因为我的json配置文件也在E:\1.4-Pythonsourcedata\automaticsign-inscript-python-(version4.0)-2,所以我也填E:\1.4-Pythonsourcedata\automaticsign-inscript-python-(4.0版)-2总结本文实现了如何使用python+selenium实现网页自动登录,以及如何添加到Windows的计划任务中。除了登录,你还可以用这个程序做其他事情,举一反三,再也不用点击了。
