最近对于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. <input type="radio">单选按钮

    转自:http://www.divcss5.com/html/h490.shtml1 <form> 男性: <input type="radio" checked ...

  2. Java全排列递归算法

    Java全排列算法: 第一遍循环:将list数组index==0的元素依次与数组的每个元素交换,从而保证index==0的位置先后出现n个不同元素之一,实现对index==0位置的遍历. 第 i 遍循 ...

  3. mkfs - 创建一个 Linux 文件系统

    总览 mkfs [ -V ] [ -t 文件系统类型 ] [ fs-选项 ] 文件系统 [ 块 ] 描述 mkfs mkfs 用来在指定设备创建一个 Linux 文件系统,通常是在硬盘上. 文件系统 ...

  4. NLP 中任务及相关概念

    命名实体识别 命名实体识别(Named Entity Recognition,简称NER),又称作"专名识别",是指识别文本中具有特定意义的实体,主要包括人名.地名.机构名.专有名 ...

  5. Linux之文件属性、权限

    Linux中的3种身份:1. owner(文件所有者) 2. group(用户组) 3. others(其他) Linux中的3中权限:1. r(可读) 2. w(可写) 3. x(可执行) * 所有 ...

  6. Codeforces 959 树构造 暴力求最小字典序互质序列

    A B C 题目给你一个结论 最少需要min((odd,even)个结点可以把一棵树的全部边连起来 要求你输出两颗树 一棵树结论是正确的 另外一棵结论是正确的 正确结论的树很好造 主要是错误的树 题目 ...

  7. luoguP1445 [Violet]樱花

    链接P1445 [Violet]樱花 求方程 \(\frac {1}{X}+\frac {1}{Y}=\frac {1}{N!}\) 的正整数解的组数,其中\(N≤10^6\),模\(10^9+7\) ...

  8. webstorm注册码,亲测2016.1.1版

    打开webstorm,点击帮助,注册 注册时,在打开的License Activation窗口中选择“License server”,在输入框输入下面的网址: http://idea.iteblog. ...

  9. JSP实现大文件上传和下载

    javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...

  10. HDU 2825 Wireless Password ( Trie图 && 状态压缩DP )

    题意 : 输入n.m.k意思就是给你 m 个模式串,问你构建长度为 n 至少包含 k 个模式串的方案有多少种 分析 : ( 以下题解大多都是在和 POJ 2778 && POJ 162 ...