网站首页  词典首页

请输入您要查询的论文:

 

标题 基于Selenium与Openpyxl的Web脚本自动化设计研究
范文

    马宁 陈曦 张李铭

    

    

    摘要:Python包含大量官方库,可以实现种类繁多的编程工作,如Selenium库可实现自动化测试,Openpyxl库可操作excel数据表,这些库可以极大地节约时间,提升工作效率。通过一个具体案例的设计实现过程阐述了如何采用Python的seleni-am、openpyxl等实3"EWeb脚本自动化操作,解决了项目中大量重复性工作的自动化实现目标。

    关键词:Python;自动化;Openpyxl;Selenium

    中图分类号:TP311 文献标识码:A

    文章编号:1009-3044(2020)01-0051-03

    1概述

    在现实社会中,人们经常需要进行一系列重复性的操作,这些重复性的操作原理简单,但是过程烦琐,浪费了工作人员宝贵的时间。随着社会的发展,IT技术日新月异,新技术不断涌现,人工测试也不再能满足日益增长的复杂任务和可靠性测试需求,这就需要有效率更高、可靠性更强、更易操作的自动化测试方案。Selenium是web应用程序自动化测试工具集,包括IDE、Grid、RC、WebDriver等,可以直接在浏览器中运行,模拟使用者的实际操作,具有很强的真实感,目前支持的主流浏览器包括IE系列、Opera浏览器、火狐浏览器等。利用自动化测试技术,可设计脚本实现某些项目中的重复性程序执行操作,让办公自动化实现智能化。

    2Python与项目开发环境配置

    2.1Python编程语言简介

    Python是一种跨平台的计算机程序设计语言。起初由荷兰程序员吉多·范罗苏姆在1989年编写。Python秉承优雅、明确、简单的设计哲学,从而使得它的程序易读懂、代码量少。在1991年完成解释器后,吉多将它开源,它的解释器易于扩展,可以使用c或c++扩展各种新的功能和数据。Python还可用作可定制化软件中的扩展程序语言。如今,在广大程序员集思广益下,Python已最终发展成拥有强大的标准库与大量第三方模块支持的一门面向对象编程语言。

    2.2 Python开发环境安装

    1)下载Pvthon安装包

    在浏览器对应地址栏中输入python官网的下载栏目地址https://www.python.org/downloads/windows/。

    然后,点击最新版本进入Pvthon3下载界面将弹出的新网页移至最下端Files界面,選择32位或64位安装包,如图1。

    2)安装

    双击打开python安装文件,如图2,选择自定义安装,勾选AddPython 3,XX to PATH(此处若不勾选,完成安装后还需手动配置环境变量1。进入自定义安装后依次将各个选项打勾,点击Next,进入如图3界面,一次勾选后,点击Browse选择安装路径,此时如果需要配置环境变量,还须记住红框内的软件安装位置。安装程序完成后会出现“Setupwassuccessful”提示,点击界面右下角Close即可。

    3)测试

    Python安装好后,还需测试安装是否成功。用“Win+R”快捷键打开运行,输入命令行工具“cmd”,在弹出黑框内输入“py-thon—V”然后键入回车,如果显示如上图4界面红框部分,则说明Python安装成功了。反之,如果命令下方出现“Python不是内部或外部命令,也不是可运行的程序或批处理文件”提示,则表示安装未成功。需要重新检测如上步骤是否操作正确。

    3Web脚本自动化控制流程设计

    3.1自动化流程控制技术简介

    自动化流程控制的出现,提供了很多的便利。自动化控制完全由电脑进行操作,人类不需要过多的操作,只需进行一些条件设定即可。这极大地提高了准确度,并且减少了人力的消耗,提高了效率。自动化流程控制主要有以下几个优点:

    1)在对某个系统操作的过程中,可能会存在许多重复性的工作。人工完成这些工作明显不是最好的方法,重复性高、过程烦琐的工作利用自动化技术是最好的。

    2)自动化控制的环境一般是相同的,结果也可以重复出现,自动化控制能使每一次的操作流程都保持一致,不会缺少某些步骤。因此,自动化控制准确性高、结果复现次数多。

    3)自动化控制可以解决:假若某一流程的操作方法出现错误,或者有变更,则只需修改某一段代码,即可开始执行,也无须浪费人力、物力,而且操作简单,无须适应新的流程。

    4)自动化流程控制是完成按照测试方案来执行的,假若执行成功,则可证明测试无误,流程正确,无须其他推理论证过程。

    3.2软件设计流程

    web自动化流程设计主要包括:制定自动化控制流程计划,根据需求说明书分析具体需求,搭建变成环境,设计用例,再编写代码,并手动执行。最后选择自动化用例,再进行自动化测试。具体流程如下:

    3.3Web脚本自动流程控制软件功能模块

    3.3.1selenium库的介绍

    selenium是一个用于web应用程序的自动化控制工具。它能运行于多种浏览器,例如IE,火狐浏览器,Safari,谷歌浏览器,Opera等。在本研究中,selenium运行于Google浏览器上。selenium主要结合web前端的标签,通过寻网页标签里的属性,例如:class、id等,也可通过xpath来定位网页中的元素。seleni-um可以定位元素,也可以对元素进行操作,当定位到一个文本框,可以自动输入指定内容,定位到关闭符号,可进行关闭窗口操作等。selenium就像真实用户操作一样,对定位到的元素进行点击、插入文本等操作,且操作简单、易学,可使用Pvthon、Ja-va等多种语言实现。

    3.3.2 selenium库的使用方法

    3.3.2.1导入selenium库

    Python导入库的一般方法:from selenium import webdriver

    3.3.2.2基本操作

    1)启动浏览器

    在本研究中用的是谷歌浏览器,故使用以下方法:

    driver=webdriver.Chrome()

    2)打开网页

    driver.get(“http://XXX.XXX.XXX.XXX/index.html”)

    30获取元素的几种方法

    通过标签的类名获取元素:find_element_by_class_name()

    通过标签的id名获取元素:find_element_by_id()

    通过标签的xpath获取元素:find_element_by_xpath()

    通过标签的name名获取元素:find_element_by_name()

    4)frame的转换

    在网页中,每一个功能都包含一个frame,无法直接用获取元素的方法定位元素。用selenium切换frame的操作,使主页面在众多子页面中进行跳转,从而获取元素。切换frame操作:driver,switch_to~flame(O)。也可以根据frame名字来切换flame:driver.switch_to.parent_frameO

    5)向文本框输入值:input.send_keys(“python”)

    6)点击某个元素:driver.find_element_by_id(“ys”).click()

    7)执行Js操作:driver.execute_script(window.scrollTo((),document.body.scrollHeight))

    8)time操作

    在本研究中,有可能时会找不到元素。究其原因,元素尚未加载完成。因此要给予元素加载的时间,待元素都加载完毕,才能定位到元素,并且进行相关操作。步骤如下:

    ①导入time库:import time

    ②进行缓冲操作:time.sleep(3)

    给予缓冲的时间后,元素加载完毕,继续进行相关操作。

    3.3.30penpyxl库的介绍

    openpyxl是Pvthon中一个操作excel的库,可以对excel库中的数据进行統计,也可以进行读写操作。它可以在后台打开excel表,并且支持excel表中的常规操作,例如:筛选、排序、单元格操作等。

    3.3.4 openpyxl库的使用

    1)导入openpyxl库:import openpyxl

    21导入要处理的excel表格:wb=openpyxl.load_workbook('XXX,XIsx)

    30激活工作簿

    此时excel表格还不能正常操作。需要激活工作簿,才能进行操作。

    ws=wb.active

    4)获取所有行和列

    在本研究中,要对所有数据进行统计,因此需要获取所有行、列中的数据,以防数据缺漏。

    row=xl sheet.max_row

    column=xl_sheet.max_column

    5)删除不需要的数据

    在excel表中,有一部分是要删除的。Python中可以用匹配的方法,结合openpyxl库中的函数,删除掉我们不需要的数据。具体实现:

    把不符合的先放入一个数组中:filters=[XX,YY,zz]

    遍历所有数据,只要有以这三个为开头的数据,先执行删除操作:

    符合的条件:str(ws['A'][i].value)[0:2]in filters)

    删除操作:ws.delete_rows(行数)

    6)进行时间计算

    在excel表中,有时候我们需要对时间进行差值计算,并且筛选出符合条件的数据,因此需要将实际时间与设定的时间相减,筛选出符合条件的进行统计。具体实现:

    需要获取时间:时间在AB列里,故获取方式为:WS[“AB”][i].value,1

    再作差:hour=float(houri-hour21

    7)将统计完的数据进行写入操作:sheet.cell(行,列).value=值

    8)保存excel表:excel.save(“TEST.xlsx”)

    3.4界面功能模块

    软件界面是使用Python中的tkinter开发模块,tkinter是Py-thon标准的GUI库,Pvthon在使用tkinter时能够快速进行各种简单页面的开发,并tkinter可运行在多种平台中。在本研究中,tkinter主要用于构建软件界面,以便操作人员设置数据,选择选项,使自动化控制流程在某些特定条件下进行。

    软件的布局采用普通的设计布局。下面以本研究为例,设计软件布局。软件主要由以下部分组成:业务类型、是否超时、当前时间设定、环节时间设定、选择保存数据、开始执行、结束执行等功能。

    软件界面具体说明如下:

    1)业务类型,包括:全选、用户、报修、查询、其他等多种业务类型。

    2)是否超时,包括:是和否。

    3)当前时间,可以人为设置时间。

    4)周期,包括年、月、日。

    5)循环时间,可以人为设置。

    3.4.1功能区开发

    11业务类型选择区:主要存放网页中可选择的项,例如用电业务、报修、查询、其他等可选项。

    2)当前时间填写区:因为要计算超过的时间,故要填写超过的小时数。

    3)周期选择区:主要由年、月、日组成,选择计算的周期。

    4)操作区:主要包括三个按钮:保存、开始、结束。

    保存:在人工选择完条件之后,需要进行保存,点击保存后,将会向主程序传递相关参数,使主程序依照条件进行自动化操作。

    开始:开始执行相关操作。

    结束:结束执行相关操作。

    4实现技术总结

    Python编程语言为解释型编程语言,它短小精悍的语法,简便清晰的代码格式,使其成为当今极其火热的编程语言;并广泛用于数据分析、人工智能、爬虫和Web应用等领域。本次研究是使用Pvthon在Web端的官方库与第三方库sdenium和openpyxl来进行开发与实现。Seletium库可以模拟浏览器操作、背后有GooSe维护源代码、且支持全部主流浏览器与各种主流编程语言。Seletium通过使用WebDriver的各种API接口,为开发提供了一系列的定位符以便使用元素定位方法。open-pyxl模块是一个读写Excel文档的Pvthon库,在处理Excel文档上,有种类繁多的库函数,openpyxl能够同时读取和修改Excel文档。它拥有的active、worksheets、read_onlv等对象属性和方法,可以实现各种具体的Excel表格统计与整理工作。

    这些自动化操作的实现,大大降低了人工操作的时间与精力成本。它实现的各种网页与Excel操作,使得自动化统计表格数据成为可能。在信息数量纷繁与复杂的当下,自动化的技术变得越来越重要也被需要,去广泛地代替人工操作烦琐重复的工作。

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/11 2:51:54