Python selenium 填写工时
记性不太好 经常忘记填工时,导致月末老板和hr经常找我核对工时。就想了个偷懒的办法。
首先需要系统带有python 并且拥有git_bash
在路径下创建do_report.sh和submit.py
do_report.sh的内容
python /c/Users/jiaminxu/Desktop/Devops_files/submit.py |
submit.py的内容
# Author:jiaminxu # coding=utf-8 from selenium import webdriver import time
def login(): dr = webdriver.Chrome() # 打开登陆的网页 dr.get('http://myhengtian:8033/WorkingReport/DailyReport.aspx') # 将浏览器窗口最大化 dr.maximize_window() # 休息五分钟等待网页加载完毕 time.sleep(5) # 找到登录框对应的iframe # dr.switch_to.frame('x-URS-iframe')
# 找到邮箱账号输入框 email = dr.find_element_by_name('username') # 将自己的邮箱地址输入到邮箱账号框中 email.send_keys('jiaminxu') # 找到密码输入框 password = dr.find_element_by_name('password') # 输入自己的邮箱密码 password.send_keys('PASSWORD') # 找到登陆按钮 login_btn = dr.find_element_by_name('submit') # 点击登陆按钮 login_btn.click() # 等待10秒看是否登陆成功 time.sleep(5)
# 找到内容x下拉框 print(1) report_btn = dr.find_element_by_id('ctl00_ContentPlaceHolder1_lbNewDailyReport') # 点击report按钮 report_btn.click() print(2) time.sleep(5)
# 找到内容输入框 blank = dr.find_element_by_name('ctl00$ContentPlaceHolder1$tbDescription') # 将自己的邮箱地址输入到邮箱账号框中 blank.send_keys('上班8h') time.sleep(5) # 找到提交按钮 commit_btn = dr.find_element_by_name('ctl00$ContentPlaceHolder1$btnCommit') # 点击commit按钮 commit_btn.click() time.sleep(5)
if __name__ == '__main__': login()
|
谷歌更新到最新版,以便适配该插件,将上述文件解压 并放到chrome路径下。
C:\Program Files (x86)\Google\Chrome\Application
添加定时任务
大致流程是登录 不方便演示。实际测试是没有问题的。在我到达公司之前已经执行完成,不会在我工作的时候自己跳出来 影响我的工作。
使用中的效果
现在由于要精确到具体项目组 就自己手动填了,不然每天一个组工作挺尴尬的。然后就又出现漏填了。红色就是漏掉的。