最近对于python的第三方库pandas比较有兴趣,在学习的过程中也简单的结合selenium做了一个简单的小工具

  最新公司用一个外部系统来记录,追踪BUG,可是这个系统并不是专业的BUG管理系统,所以对于数据筛选,查看不是很友好。无法满足日常需求,所以就只能自己来倒腾一下了.这里只是实现了很简单的小功能,我需要得出每天关闭BUG的数量 (暂时没有做界面,也没有封装成exe)

主要用的定位方法为xpath,只是用到了很皮毛的程度,这个pandas工具对于数据处理的方面还是比较强大的,后续可以做更多的数据分析方面的练习

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from selenium import webdriver
import datetime,time
import pandas as pd
import os 
path =r""
url=""
dt = datetime.datetime.strptime(datetime.datetime.now().strftime("%Y-%m-%d"), "%Y-%m-%d")
dt=dt.strftime('%Y-%m-%d %H:%M:%S') #获取当前凌晨的时间后,将其转换为'str'
 #判断下载路径下是否存在之前下载的文件,有的话删除
def check_file():
    for root,dirs,files in os.walk(path): 
        for name in files:
            if name.startswith('_itServiceItsuesList_'):
                os.remove(os.path.join(root,name))
                print("Delete File:"+os.path.join(root,name))
            else:
                pass
#登录
def login(url): 
    drvier.get(url)
    time.sleep(1)
    drvier.find_element_by_id('loginid').click()
    time.sleep(1)
    drvier.find_element_by_id('loginid').send_keys("")
    time.sleep(1)
    drvier.find_element_by_id('userpassword').click()
    drvier.find_element_by_id('userpassword').send_keys("")
    time.sleep(1)
    drvier.find_element_by_id('login').submit()
    time.sleep(3)
    return drvier
#去掉指定的位置,按照一定的规则筛选数据,导出excel
def IT():
    driver=login(url)   
    driver.find_element_by_link_text(u'服务台').click()
    driver.find_element_by_link_text(u'待办问题').click()
    fr=driver.find_element_by_xpath('//*[@id="mainframe"]')
    driver.switch_to.frame(fr)
    driver.find_element_by_xpath('//*[@id="shortcut$text"]').click()
    driver.find_element_by_xpath('//*[@id="mini-25$1"]/td[2]').click() #由我创建
    driver.find_element_by_xpath('//*[@id="type"]/span/span/span[2]/span').click() #事件状态
    time.sleep(2)
    driver.find_element_by_xpath('//*[@id="mini-7$ck$14"]').click() #关闭
    #driver.find_element_by_xpath('//*[@id="mini-7$ck$all"]').click() #全选
    driver.find_element_by_xpath('//*[@id="type"]/span/span/span[2]/span').click()
    driver.find_element_by_xpath('//*[@id="a1"]/span').click() #查询
    driver.find_element_by_xpath('//*[@id="queryForm"]/div/table[5]/tbody/tr/td[1]/a[2]/span').click() #导出excel
    time.sleep(3)   #
    driver.find_element_by_xpath('//*[@id="winSearch"]/div/div[2]/div[3]/div/a[1]/span').click() #导出按钮
    time.sleep(8)  #等待下载完成
    driver.close()
def analysics():
    name=[n for n in os.listdir(path) if n.startswith('_itServiceItsuesList_')]  #获取已XX文件命名的文件
    root=os.path.join(path,name)
    df=pd.read_excel(root)
    data=df.shape   # 获取总行与总列数 (行,列)
    data_rows=data[0] #获取总行数
    for row in range(data_rows):
        str_=str((df.loc[row])[72])
        if str_!='nan':
            if str_>dt:
                #print((df.loc[row])[72])
            else:
                pass
        else:
            pass
    print(count)
    return count
def main():
    check_file() 
    drvier=webdriver.Chrome()
    drvier.maximize_window()
    drvier.implicitly_wait(5)  #设置隐性等待时间
    IT()
    analysics()
if __name__=='__main__':
    main()

  

  

练习4-python+selenium+pandas的更多相关文章

  1. Python+Selenium爬取动态加载页面(2)

    注: 上一篇<Python+Selenium爬取动态加载页面(1)>讲了基本地如何获取动态页面的数据,这里再讲一个稍微复杂一点的数据获取全国水雨情网.数据的获取过程跟人手动获取过程类似,所 ...

  2. Python+Selenium爬取动态加载页面(1)

    注: 最近有一小任务,需要收集水质和水雨信息,找了两个网站:国家地表水水质自动监测实时数据发布系统和全国水雨情网.由于这两个网站的数据都是动态加载出来的,所以我用了Selenium来完成我的数据获取. ...

  3. python+selenium 浏览器的问题

    以前用selenium调用firefox是不需要驱动的,最近安装了python3.52+最新的firefox 发现调不起来了 搜索以后发现Firefox 47+需要搞个firefox的驱动 gecko ...

  4. 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试

    Web登录测试是很常见的测试!手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动 ...

  5. Python + Selenium 实现登录Office 365

    最近捡起之前用的Python + Selenium实现工作中需要的登录Office 365功能.(吐槽:国内网络真是卡,登录Office 365实属不易.另外Selenium这样的网站都要墙,无法理解 ...

  6. python+selenium+Robot

    准备工作: 1.下载python2.7 http://python.org/getit/ 2.下载下载setuptools [python 的基础包工具] 可以帮助我们轻松的下载,构建,安装,升级,卸 ...

  7. python+selenium运行报错UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

    使用python+selenium运行自动化脚本时,打印某一段文字出现UnicodeEncodeError: 'ascii' codec can't encode characters in posi ...

  8. Functional testing - python, selenium and django

    Functional testing  - python selenium django - Source Code : from selenium import webdriverfrom sele ...

  9. python selenium自动化(二)自动化注册流程

    需求:使用python selenium来自动测试一个网站注册的流程. 假设这个网站的注册流程分为三步,需要提供比较多的信息: 在这个流程里面,需要用户填入信息.在下拉菜单中选择.选择单选的radio ...

  10. 使用python selenium进行自动化functional test

    Why Automation Testing 现在似乎大家都一致认同一个项目应该有足够多的测试来保证功能的正常运作,而且这些此处的‘测试’特指自动化测试:并且大多数人会认为如果还有哪个项目依然采用人工 ...

随机推荐

  1. dom的节点操作

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. __bridge

    Core Foundation 框架Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能.下面列举 ...

  3. mysql使用MRG_MyISAM(MERGE)实现水平分表

    在MySQL中数据的优化尤其是大数据量的优化是一门很大的学问,当然其它数据库也是如此,即使你不是DBA,做为一名程序员掌握一些基本的优化信息,也可以让你在自己的程序开发中受益匪浅.当然数据库的优化有很 ...

  4. C# wpf image绑定viewModel没有显示图片

    在wpf绑定图片,用viewModel的图片绑定image 我是用viewModel.cs public class viewModel:INotifyPropertyChanged { #regio ...

  5. bzoj3754 Tree之最小方差树 最小生成树+推性质

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3754 题解 感觉这个思路挺神仙的. 后悔没有好好观察题目的数据范围,一直把 \(n\) 和 \ ...

  6. 带加载进度的Web图片懒加载组件Lazyload

    在Web项目中,大量的图片应用会导致页面加载时间过长,浪费不必要的带宽成本,还会影响用户浏览体验. Lazyload 是一个文件大小仅4kb的图片懒加载组件(不依赖其它第三方库),组件会根据用户当前浏 ...

  7. LOJ2320「清华集训 2017」生成树计数

    由于菜鸡的我实在是没学会上升幂下降幂那一套理论,这里用的是完全普通多项式的做法. 要是有大佬愿意给我讲讲上升幂下降幂那一套东西,不胜感激orz! 首先可以想到prufer序列,如果不会的话可以左转百度 ...

  8. JVM---对象访问

  9. layui数据表格排序图标被超出的表头挤出去

    如果表头过长,会出现超出显示三个省略号,然后把排序图标挤出去,看不到了, 效果如下 解决办法就是给图标加定位,过长的时候加上 .show-sort{ position: absolute; right ...

  10. eclipse设置maven web项目打包

    如图:eclipse下的maven web项目,打包部署到本地tomcat时,需要关注的2个方面: 1. src/main/webapp目录下的文件,打包到/ 根路径下 2. 添加maven 依赖,打 ...