python unittest excel,python自动化,使用unittest对界面操作,读取excel表格数据输入到页面查询结果,在把结果保存到另外一张excel中...

这篇博客主要展示了如何使用Python的selenium库自动化操作网页,并结合xlrd和xlwt库读写Excel数据。首先,通过selenium登录网页,然后遍历Excel表格数据,模拟输入查询并检查订单状态,将特定状态的订单信息写入新的Excel文件。
摘要由CSDN通过智能技术生成

# -*- coding: utf-8 -*-

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.remote.webelement import WebElement

from selenium.webdriver.support.ui import Select

from selenium.common.exceptions import NoSuchElementException

from selenium.common.exceptions import NoAlertPresentException

import unittest, time, re

import xlrd

import xlwt

from datetime import date,datetime

class TEST(unittest.TestCase):

def setUp(self):

self.driver = webdriver.Firefox()

self.driver.implicitly_wait(3)

self.base_url = "https://asdw.easyeda.com/admin/orders/all"

self.verificationErrors = []

self.accept_next_alert = True

def test_(self):

str=[]

fname = "dmin.xls"

bk = xlrd.open_workbook(fname)

shxrange = range(bk.nsheets)

try:

sh = bk.sheet_by_name("Sheet1")

except:

print("no sheet in %s named Sheet1" % fname)

#获取行数

nrows = sh.nrows

#获取列数

ncols = sh.ncols

print("nrows %d, ncols %d" % (nrows,ncols))

# 获取第一行第一列数据

cell_value = sh.cell_value(1,0)

print(cell_value)

#print cell_value

# 创建一个Workbook对象,这就相当于创建了一个Excel文件

book = xlwt.Workbook(encoding='utf-8', style_compression=0)

'''

Workbook类初始化时有encoding和style_compression参数

encoding:设置字符编码,一般要这样设置:w = Workbook(encoding='utf-8'),就可以在excel中输出中文了。

默认是ascii。当然要记得在文件头部添加:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

style_compression:表示是否压缩,不常用。

'''

#创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格。

# 在电脑桌面右键新建一个Excel文件,其中就包含sheet1,sheet2,sheet3三张表

sheet = book.add_sheet('test', cell_overwrite_ok=True)

# 其中的test是这张表的名字,cell_overwrite_ok,表示是否可以覆盖单元格,其实是Worksheet实例化的一个参数,默认值是False

# 向表test中添加数据

driver = self.driver

driver.get(self.base_url + "/")

driver.find_element_by_name("email").send_keys("username")

driver.find_element_by_name("password").send_keys("password")

driver.find_element_by_xpath("//input[@class='btn btn-success']").click()

time.sleep(1)

driver.find_element_by_xpath("//li//span[contains(text(),'订单管理')]").click()

driver.find_element_by_xpath("//ul[@class='sub-menu collapse in']//a[@href='https://asdw.easyeda.com/admin/orders/all']").click()

row_list=[]

for i in range(0,nrows):

row_data = sh.row_values(i,0)

row_list.append(row_data)

driver.find_element_by_xpath("//input[@class='form-control input-md']").clear()

driver.find_element_by_xpath("//input[@class='form-control input-md']").send_keys(row_data[0])

driver.find_element_by_xpath("//input[@class='form-control input-md']").send_keys(Keys.ENTER)

time.sleep(2)

# for str in str:

# driver.find_element_by_xpath("//input[@class='form-control input-md']").clear()

# driver.find_element_by_xpath("//input[@class='form-control input-md']").send_keys(row_data[0])

# driver.find_element_by_xpath("//input[@class='form-control input-md']").send_keys(Keys.ENTER)

# driver.implicitly_wait(3)

# time.sleep(2)

try:

string=driver.find_element_by_xpath("//span[contains(@id,'cell_status')]").text

if string == "已发货" or string =="已收件" or string =="可追踪":

sheet.write(i, 0,row_data[0]+string) # 其中的'0-行, 0-列'指定表中的单元,'row_data[0]'是向该单元写入的内容

print(row_data[0] +" "+string)

driver.find_element_by_xpath("//input[@class='form-control input-md']").clear()

except Exception as e:

print(row_data[0]+" 异常")

#保存文件

book.save(r'e:\test1.xls')

if __name__ == "__main__":

unittest.main()

Java读取Execl表格数据

在前面提到用java代码新建一个Execl 表格并添加数据到表格中, 这次写了一个读取Execl表格数据并添加导数据库中的案列 给定对方一个Execl模板表格,如果导入的Execl表格和预订的表格不相 ...

R 脚本读取汇总 Excel 表格数据

主要用到了 xlsx 和 rJava 包,打开 Excel 文件,读取各表格数据,再写入到汇总表. 下图为处理前的原始数据表格: 下图为处理后的数据: 代码实现 安装&加载包的函数实现.ins ...

Java操作Jxl实现导出数据生成Excel表格数据文件

实现:前台用的框架是Easyui+Bootstrap结合使用,需要引入相应的Js.Css文件.页面:Jsp.拦截请求:Servlet.逻辑处理:ClassBean.数据库:SQLserver. 注意: ...

jxl读取Excel表格数据

调用jxl包实现Excel表格数据的读取,代码如下: import java.io.File; import java.io.IOException; import java.util.ArrayLi ...

C#调用NPOI组件读取excel表格数据转为datatable写入word表格中并向word中插入图片/文字/书签 获得书签列表

调用word的com组件将400条数据导入word表格中耗时10分钟简直不能忍受,使用NPOI组件耗时4秒钟.但是NPOI中替换书签内容的功能不知道是不支持还是没找到. 辅助类 Excel表格数据与D ...

JXL读取写入excel表格数据

问题描述: 使用java的jxl包创建.写入excel表格数据 问题解决: (1)说明 (2)写入execel数据 注: 以上是写入数据需要调用的函数接口 注: 具体接口调用过程,如上所示 (3)读取 ...

利用 pandas库读取excel表格数据

利用 pandas库读取excel表格数据 初入IT行业,愿与大家一起学习,共同进步,有问题请指出!! 还在为数据读取而头疼呢,请看下方简洁介绍: 数据来源为国家统计局网站下载: 具体方法 代码: i ...

go读取excel表格数据

go读取excel表格数据 使用工具 github.com/Luxurioust/excelize 百度到的都是使用这个 实际上已经改名了 github.com/360EntSecGroup-Skyl ...

NPOI操作EXCEL(三)——反射机制进行excel表格数据的解析

我们先来回忆回忆上篇文章讲到的通过xml配置文件实现excel批量模板解析的整体思路: 1.对每个excel模板制定xml配置规则集,实现xml配置文件的解析服务 2.为每个excel模板制定DTO, ...

随机推荐

Hibernate ——二级缓存

一.Hibernate 二级缓存 1.Hibernate 二级缓存是 SessionFactory 级别的缓存. 2.二级缓存分为两类: (1)Hibernate内置二级缓存 (2)外置缓存,可配置的 ...

dom4j解析xml的增加信息

想要在xml中增加信息,那么就要先找到你要加信息的节点 前三行是固定模式,主要是找到xml文件的地址,并且得到根节点,再从根节点中便利出来movie的所有节点之后用集合接收 SAXReader rea ...

dateTimePicker的使用,时间控件

促销时间 *

-F, --flush-logs

 -F, --flush-logs Flush logs file in server  ...

Unity3d 导入图像尺寸失真解决方案

导入到unity3d内的图像被默认长宽变换为满足2^n关系. 例如以下图,我有张图片名称为984plus598表示我尺寸为984*598.拷贝到unity3d中后的大小为1024*512 方法一: 在 ...

iOS 之 网络 NSURLSession

NSURLSession相比NSURLConnection功能更强大,是更上层的网络封装.相比而言,普通应用场景下NSURLSession没有什么优势,但是,在程序切换到后台的情况下,NSURLSes ...

机器学习——交叉验证,GridSearchCV,岭回归

0.交叉验证 交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set) ...

判断(if)语句

目标 开发中的应用场景 if语句体验 if语句进阶 综合应用 一 开发中的应用场景 转换成代码 判断的定义 如果 条件满足,才能做某件事 如果 条件不满足,就做另外一件事,或者什么也不做 判断语句 又 ...

Android Studio:xxx is not an enclosing class 错误的解决方法

Android Studio:xxx is not an enclosing class 错误的解决方法 这个问题一般出现在内部类中,若要创建内部类的实例,需要有外部类的实例才行,或者是将内部类设置为 ...

Python自动发邮件——smtplib和email库和yagmail库

''' 一.先导入smtplib模块 导入MIMEText库用来做纯文本的邮件模板 二.发邮件几个相关的参数,每个邮箱的发件服务器不一样,以163为例子百度搜索服务器是 smtp.163.com 三. ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值