
Selenium秘籍大揭秘:解锁Web自动化的力量
文章平均质量分 93
1、跨浏览器兼容性:Selenium支持多种浏览器,可在不同浏览器中执行相同的测试,确保应用程序在各种环境中的兼容性。2、强大的断言和验证:unittest框架提供了丰富的断言方法,可以验证测试结果的正确性。可以轻松进行断言和验证,确保应用程序的功能和逻辑的正确性。
进击的雷神
优快云博客专家、担任过EMV软件工程师、嵌入式软件工程师、JAVA开发工程师、测试开发工程师、某公司测试组长,有自己的测试专利
展开
-
Selenium关于内容信息的获取读取
判断的依据就是, 当方法真正执行时, 有没有传入实例, A.f(a) 和 a.f() 用法的区别只是在于, 第一种需要人为传入实例才能调用, 而第二种, 是虚拟机帮我们做好了传入实例的动作, 不用我们那么麻烦而已, 两种方法。, 其实这两者差别也不大. 从上面我们得知, 一个方法的创建, 是需要self, 而调用时, 也会使用self,而只有实例化对象, 才有这个self, class是没有的, 所以像下面的执行, 是失败的额。// 将刚才压入栈的 A/a 取出来。// 关键位置参数的个数。原创 2023-11-10 06:15:00 · 279 阅读 · 0 评论 -
Selenium切换窗口句柄及调用Chrome浏览器
在使用Selenium爬取知识过程,通常会遇到_blank弹出新窗体,或窗体是弹出的那种情况,而且有的需要登录,如:新浪微博、微信公众号、京东等,使用webdriver.Firefox()重新打开新窗体是无法加载已有信息的。首先,假设通过Firefox()浏览器定向爬取首页导航栏信息,审查元素代码如下图所示,在div class="menu"路径的ul、li、a下,同时可以定位ul class="clearfix"。这里使用该方法实现获取优快云导航栏的每条导航的标题信息,因为它是_blank弹出新窗体。原创 2023-11-08 10:49:45 · 694 阅读 · 0 评论 -
Selenium爬取内容并存储至MySQL数据库
通常,在使用Selenium爬虫爬取数据后,需要存储在TXT文本中,但是这是很难进行数据处理和数据分析的。这篇文章主要讲述通过Selenium爬取我的个人博客信息,然后存储在数据库MySQL中,以便对数据进行分析,比如分析哪个时间段发表的博客多、结合WordCloud分析文章的主题、文章阅读量排名等。也可以采用点击"下页"跳转,没有"下页"停止跳转,爬虫结束,接着爬取下一个博主。注意,在while中同时获取三个值,它们是对应的。注意,在下载过程中,有的网站是新版本的,无法获取页码。原创 2023-11-07 10:19:22 · 506 阅读 · 0 评论 -
Python简单实现基于VSM的余弦相似度计算
其中由于只需要计算InfoBox消息盒的相似度,不会存在一些故不需要计算TF-IDF值,通过词频就可以表示权重,在代码中简单添加循环后,可以计算百度百科的“故宫”与互动百科不同实体的相似度,运行结果如下所示,可以发现“北京故宫”和“故宫”相似度最高。这样,就需要一群你喜欢的文章,才可以计算IDF值。简言之,判断一篇文章是否是你喜欢的文章,即将文章抽象成一个向量,该向量由n个词Term组成,每个词都有一个权重(Term Weight),不同的词根据自己在文档中的权重来影响文档相关性的重要程度。原创 2023-11-07 10:12:04 · 234 阅读 · 0 评论 -
BeautifulSoup与Selenium的差别化应用
这篇文章主要对比BeautifulSoup和Selenium爬取豆瓣Top250电影信息,两种方法从本质上都是一样的,都是通过分析网页的DOM树结构进行元素定位,再定向爬取具体的电影信息,通过代码的对比,你可以进一步加深Python爬虫的印象。BeautifulSoup 通过 soup.find_all(attrs={"class":"item"}) 函数可以获取具体的信息,然后再定位具体内容,如 获取标题,获取分数和评价数。原创 2023-11-02 10:20:01 · 144 阅读 · 0 评论 -
招聘信息定时系统 (二).调用pyinstaller包生成exe文件
前面一篇文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为前一天的,同时将爬取的内容保存到数据库中;这系列文章主要是最近研究了数据库的定时计划备份,联系爬虫简单做的一个实验,但方法可以,尤其在Windows xp年代。文件通常需要运行在Python编程坏境中,而可执行exe文件更方便,尤其是我们第三篇文章制作定时任务 时,执行exe文件更加方便。注意Scripts放置Python的各种第三方扩展包,这里的pyinstaller.exe在此处。1.在cmd环境进入该Scripts文件夹路径下;原创 2023-11-01 06:00:00 · 402 阅读 · 0 评论 -
招聘信息定时系统 (一).BeautifulSoup爬取信息并存储MySQL
这系列文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为当前天的,同时将爬取的内容保存到数据库中,然后制作定时系统每天执行爬取,最后是Python调用相关库发送短信到手机。最近研究了数据库的定时计划备份,联系爬虫简单做了这个实验,虽然方法是基于单机,比较落后,但可行,创新也比较好。判断为当前日期则保存到TXT和MySQL中,这是为了后面方便,每天爬取最新的信息并周期执行,然后发送短信给手机。我也是佩服自己的大脑,哈哈~3.设置Windows系统的计划,制作定时任务,每天早上定时执行exe爬虫;原创 2023-10-31 11:28:42 · 283 阅读 · 0 评论 -
常用正则表达式爬取网页信息及分析HTML标签总结
标签之间内容该部分主要是通过正则表达式获取两个标签之间的内容,通常这种标签都是成对出现的。开始标签如:、、、、、...后缀标签如:原创 2023-10-30 10:23:23 · 368 阅读 · 0 评论 -
安装Python及爬虫入门介绍
的作用和perl中的cpan,ruby中的gem类似,都提供了在线一键安装模块的傻瓜方便方式,而pip是easy_install的改进版,提供更好的提示信息,删除package等功能。通过审查元素,可以定位到需要爬取图片或网页的HTML源文件,通常是table或div的布局,这些HTML标签通常是成对出现的,如、等;是一个软件框架由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。需要添加path环境变量。原创 2023-10-25 08:15:00 · 812 阅读 · 0 评论 -
爬虫知识之BeautifulSoup库安装及简单介绍
在前面的几篇文章中我介绍了如何通过Python分析源代码来爬取博客、维基百科InfoBox和图片,其文章链接如下:import re#下载静态HTML网页#获取标题#获取超链接内容>(.*?)'break #只输出一个url>>>youkuaiyun.com - 全球最大中文IT社区,为IT专业技术人员提供最全面的信息传播和服务平台登录>>>import os但是上面这种分析HTML来爬取网站内容的方法存在很多弊端,譬如:1.正则表达式被HTML。原创 2023-10-24 14:55:47 · 364 阅读 · 0 评论 -
Selenium自动访问Firefox和Chrome并实现搜索截图
通过找到附近的一个元素的id或name属性(理想的父元素),你才可以根据之间的关系定位到你追踪的元素。其中使用XPath的一个主要原因是:当你没有一个合适的ID或Name属性来定位你需要查找的元素时,你可以使用XPath去定位这个绝对元素(不建议这样),或者相对一个有id或name属性的元素定位。有了这个方法,用id属性值匹配时第一个被定位的元素将被返回。通过该方法,第一个满足name属性值的元素将被匹配返回,如果没有元素匹配,将抛出一个NoSuchElementException异常。原创 2023-10-24 09:12:56 · 726 阅读 · 0 评论 -
Selenium实现自动登录163邮箱和Locating Elements介绍
通过找到附近的一个元素的id或name属性(理想的父元素),你才可以根据之间的关系定位到你追踪的元素。其中使用XPath的一个主要原因是:当你没有一个合适的ID或Name属性来定位你需要查找的元素时,你可以使用XPath去定位这个绝对元素(不建议这样),或者相对一个有id或name属性的元素定位。有了这个方法,用id属性值匹配时第一个被定位的元素将被返回。通过该方法,第一个满足name属性值的元素将被匹配返回,如果没有元素匹配,将抛出一个NoSuchElementException异常。原创 2023-10-23 14:19:32 · 967 阅读 · 0 评论 -
Selenium信息获取方法实战
点击"资料"可以获取个人详细信息、点击"关注[516]"可以获取关注列表,如果需要建立不同用户之间的关注网,个人建议通过关注表而不是粉丝表,因为关注表覆盖明星更大,而粉丝太多,构建的图太稀疏。其原因是手机端数据相对更轻量型,同时基本数据都齐全,可能缺少些个人基本信息,如"个人资料完成度"、"个人等级"等,同时粉丝ID和关注ID只能显示20页,但完全可以作为语料进行大部分的验证。通过分析HTML源码,获取节点位置,通过Selenium函数定义位置获取信息,然后再通过正则表达式或字符串处理获取想要的值。原创 2023-10-23 14:01:11 · 64 阅读 · 0 评论 -
Selenium定向爬取PubMed生物医学摘要信息
PubMed界面提供与综合分子生物学数据库的链接,其内容包括:DNA与蛋白质序列,基因图数据,3D蛋白构象,人类孟德尔遗传在线,也包含着与提供期刊全文的出版商网址的链接等。同时,这篇文章更多的是我的个人在线笔记,简单记录下一段代码,以后也不会再写Selenium这种简单的爬取页面的文章了,更多是一些智能动态的操作和Scrapy、Python分布式爬虫的文章吧。它的数据库来源为MEDLINE(生物医学数据库),其核心主题为医学,但亦包括其他与医学相关的领域,像是护理学或者其他健康学科。原创 2023-10-21 12:49:13 · 724 阅读 · 0 评论 -
Selenium定向爬取海量精美图片及搜索引擎杂谈
现在也出现一种成功的新互联网公司屏蔽搜索引擎公司爬虫的现象,比如Facebook对Google的屏蔽,国内淘宝对百度的屏蔽,主要是商业公司之间的竞争策略,也可看做是垂直搜索和通用搜索的竞争。先在缓存中查找,缓存系统中存储了不同的查询意图对应的搜索结果,如果能在缓存中找到满足用户需求的信息,则直接返回给用户,即节省资源又加快响应速度。搜索引擎的信息来源于互联网网页,通过网络爬虫将整个互联网的信息获取到本地,因此互联网页面中有很大部分内容是相同或相似的,“网页去重”模块会对此作出检测并去除重复内容。原创 2023-10-20 15:39:32 · 2172 阅读 · 0 评论 -
Selenium+Phantomjs动态获取优快云下载资源信息和评论
其中对应的源码如下所示,通过获取find_elements_by_xpath()获取多个元素,其div的class='list-container mb-bg',同时路径为即可。而通过Chrome或FireFox浏览器审查元素能查看具体的评论div,这也是模拟浏览器的用处所在吧!每个页面有一列资源,通过driver的find_element_by_xpath()路径获取标题和get_attribute('href')函数获取URL,它会自动补齐链接;原创 2023-10-09 06:00:00 · 123 阅读 · 0 评论 -
在Windows下安装PhantomJS和CasperJS及入门介绍(上)
近在使用Python爬取网页内容时,总是遇到JS临时加载、动态获取网页信息的困难。例如爬取优快云下载资源评论、搜狐图片中的“原图”等,此时尝试学习Phantomjs和CasperJS来解决这个问题。这第一篇文章当然就是安装过程及入门介绍。官网介绍:PhantomJS是一个服务器端的 JavaScript API 的(开源的浏览器引擎)。其支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas 和 SVG。原创 2023-08-21 06:00:00 · 393 阅读 · 0 评论 -
在Windows下安装PIP+Phantomjs+Selenium
easy_insall的作用和perl中的cpan,ruby中的gem类似,都提供了在线一键安装模块的傻瓜方便方式,而pip是easy_install的改进版,提供更好的提示信息,删除package等功能。老版本的python中只有easy_install,没有pip。PS:我准备使用C#调用PhantomJS.exe完成页面截图功能,但是没有成功,而且使用WebBrowser中DrawToBitmap函数获取图片,由于ActiveX 控件不支持DrawToBitmap方法,获取总是空白的,各种问题。原创 2023-08-22 06:00:00 · 405 阅读 · 0 评论 -
[python] Kmeans文本聚类算法+PAC降维+Matplotlib显示聚类图像
文本输入是读取本地的01_All_BHSpider_Content_Result.txt文件,里面包括1000行数据,其中001~400行为景区、401~600为动物、601~800为人物明星、801~1000为国家地理文本内容(百度百科摘要信息)。由于数据集比较小,文本聚类效果还是很明显的,而LDA算法是计算每个主题分布的算法,推荐你也去学习下。(2) 调用plt.legend([plot1, plot2, plot3, plot4], (u'景区', u'动物', u'明星', u'国家') )原创 2023-08-19 06:00:00 · 402 阅读 · 0 评论 -
[python爬虫] 爬取图片无法打开或已损坏的简单探讨
PS:百度图片动态加载的功能是非常强大的,当你的鼠标拖动时,它会自动增加新的页面,在中包括新的一批张图片,这也是不同于其它网页在右下角点击"1、2、3..."翻页的,可能也会成为海量图片爬取的又一难点。同样的道理,googto的elem.get_attribute("src")改成elem.get_attribute("data-imgurl")即可获取正确的图片地址并正确下载。还是使用老的链接,虽然读取是无法显示的,但尝试通过Selenium的鼠标右键另存为功能,看能不能爬取成功。原创 2023-08-20 06:00:00 · 1031 阅读 · 0 评论 -
[python] 安装numpy+scipy+matlotlib+scikit-learn及问题解决
最早我是使用"pip install scikit-learn"命令安装的Scikit-Learn程序,并没有注意需要安装Numpy、Scipy、Matlotlib,然后在报错"No module named Numpy"后,我接着使用PIP或者下载exe程序安装相应的包,同时也不理解安装顺序和版本的重要性。其中操作系统为64位,Python为2.7.8 64位,下载的四个whl文件如下,其中cp27表示CPython 2.7版本,cp34表示CPython 3.4,win_arm64指的是64位版本。原创 2023-08-16 06:00:00 · 688 阅读 · 0 评论 -
[python] 使用Jieba工具中文分词及文本聚类概念
因此,在文本进行聚类之前,应用文本信息特征集进行缩减,针对每个特征词的权重排序,选取最佳特征,包括TF-IDF。同时,他的实验数据是搜狐中心的10个大类,包括汽车、财经、IT、体育等,而我的数据都是旅游,如何进一步聚类划分,如山川、河流、博物馆等等,这是另一个难点。故宫/的/著名景点/包括/乾清宫/、/太和殿/和/午门/等/。/其中/乾清宫/非常/精美/,/午门/是/紫禁城/的/正门/,/午门/居中/向阳/。/ 其中/ 乾清宫/ 非常/ 精美/ ,/ 午门/ 紫禁城/ 正门/。原创 2023-08-18 06:00:00 · 331 阅读 · 0 评论 -
[python] 基于k-means和tfidf的文本聚类代码简单实现
俗话说“外行看热闹,内行看门道“,作为一个机器学习的门外汉,刚研究python机器学习scikit-learn两周时间,虽然下面这段程序可能对于那些专研算法或机器学习的人来说非常简单,但对于一些入门的同学和我自己还是非常有帮助的。中文分词主要使用的是Python+Jieba分词工具,同时导入自定义词典dict_baidu.txt,里面主要是一些专业景点名词,如"黔清宫"分词"黔/清宫",如果词典中存在专有名词"乾清宫"就会先查找词典。缺点是聚类结果与初始中心的选择有关系,且必须提供聚类的数目。原创 2023-08-17 06:00:00 · 236 阅读 · 0 评论 -
Selenium常见元素定位方法和操作的学习介绍
首先通过name定位用户名和密码,再调用方法clear()清除输入框默认内容,如“请输入密码”等提示,通过send_keys("**")输入正确的用户名和密码,最后通过click()点击登录按钮或send_keys(Keys.RETURN)相当于回车登录,submit()提交表单。在webdriver的Keys类中提供了键盘所有的按键操作,当然也包括一些常见的组合键操作如Ctrl+A(全选)、Ctrl+C(复制)、Ctrl+V(粘贴)。除了上面给出的公共方法,这里也有两个在页面对象定位器有用的私有方法。原创 2023-10-20 15:27:05 · 926 阅读 · 0 评论 -
selenium_webdriver自动化测试指南
findElement返回一个元素对象否则抛出异常,findElements返回符合条件的元素List,如果不存在符合条件的就返回一个空的list。实现的原理就是先找到Select元素,然后获取它的所有选项,接着遍历这些选项并找出和要选择的相同文本的选项,最后单击它。在浏览器上,可以按“前进”和“后退”按钮来进行导航,通过back()/forward()方法,也可以实现这种导航功能。在下面的例子中我们用id定位这个输入框,并在搜索框中输入“找到文本框”,借此也可以验证代码是否工作正常。原创 2023-09-11 06:45:00 · 201 阅读 · 0 评论 -
selenium 定位不到元素的几种情况
后面的数字会随着你每次登陆而变化,此时就无法通过。这个需要增加一定等待时间,显示等待时间可以通过。此时需要通过以下语句切换到默认的。页面没有加载出来就需要点击页面上的元素。这个是因为在描述路径的时候没有按照。等待欢迎页的图片出现再进行其他操作。里边的某一个元素的方法定位此元素。安全性强,不允许跨域调用出现报错。上面一段代码注释掉的部分为通过。来定位此元素,但是由于该元素在。的相对路径方法查找到该元素。由于需要定位的元素在某一个。里边,所以有时通过单独的。的情况,此时如果当前处在。造成找不到元素的情况出现。原创 2023-09-10 06:15:00 · 486 阅读 · 0 评论 -
基于Python+unittest自动化测试框架说明文档
一、unittest自动化框架介绍.... - 5 -1、unittest核心工作原理.... - 5 -1.1、TestCase. - 5 -1.2、TestSuite. - 6 -1.3、TestRunner. - 6 -1.4、TestFixture. - 6 -2、框架目录结构介绍.... - 6 -2.1、config层.... - 6 -2.2、data层.... - 7 -2.3、log层.... - 7 -2.4、report层.... - 7 -原创 2022-01-21 19:21:19 · 1925 阅读 · 2 评论 -
selenium之关于截图元素定位及只截取元素讲解
一、前言关于截取元素,这边有一个坑在mac,mac默认是二倍截图保存,会导致你元素定位没错,初始截图没错,但是在截取元素的时候老是截取不到你要的元素图,虽然网上有类似将坐标乘以2,同样放大两倍的方法去截取,但是如果在你不知道分别率被放大多少倍的时候,你又该如何去解决这个问题呢?下面有这方便的讲解二、实战1、mac的二倍截图问题解决代码# coding:utf-8from selenium import webdriverfrom PIL import Imagedriver = w原创 2021-10-19 15:54:07 · 2563 阅读 · 0 评论 -
怎样从0开始搭建一个测试框架_14——关于框架与用例的结合
一、前言自动化框架我个人觉得很重要的一点是要做到数据与脚本分离、实现参数化,然后就是针对关联的上下游接口做参数关联就可以了。下面就写一个怎样运行框架的简单demo。二、数据与脚本的分离我对于测试数据的存放管理大概是这样的规则:1、对于账号密码,这种管全局的参数,可以用命令行参数,单独抽出来,写在配置文件里(如ini或者yaml)2、对于一些一次性消耗数据,比如注册,每次注册不一样的数,可以用随机函数生成,这边推荐一个fake3 、对于一个接口有多组测试的参数,可以参数化,数据放yam原创 2021-10-17 10:35:09 · 414 阅读 · 0 评论 -
怎样从0开始搭建一个测试框架_13——搭建jenkins实现自动化部署
一、先看看windows下的搭建1、前期准备1.1 安装虚拟机 参考VMware Fusion 12.0.0 Pro 专业版1.2 安装ubuntu 参考安装Ubuntu2、jekins启动安装root@lucas-virtual-machine:~# docker run --restart always -it -d --name jenkinsdemo -p 8081:8080 jenkins/jenkinsUnable to find image 'jenkins/jen原创 2021-09-28 21:45:28 · 421 阅读 · 0 评论 -
怎样从0开始搭建一个测试框架_12——socket接口测试
接口测试时,除了常见的http接口,还有一种比较多见,就是socket接口,今天讲解下怎么用Python自带的socket库进行socket接口测试。一、 socket接口socket 又叫 套接字,可以理解为是一个应用程序的地址,是实现网络通信的关键。我们可以通过IP找到一台主机,可以通过主机的端口找到该主机上的某个应用程序。这样,就可以通过socket进行两个应用程序之间的通信。具体实现就是在一端实现一个一直在监听的server,另一端向其发送请求,并获取响应。server对不同的请求进行不原创 2021-09-24 17:56:45 · 569 阅读 · 0 评论 -
怎样从0开始搭建一个测试框架_11——支持方法
比如有时候请求需要加密、签名,还有一些支持方法,可以在utils中建个support.py放进去。在utils中创建一个support.py文件,里面可以放需要的一些支持方法,我们示例一个加密和签名的方法及排序:# -*- coding: utf-8 -*-"""@author: lucas@Function: 一些支持方法,比如加密、排序@file: support.py@time: 2021/9/22 11:04 上午"""import hashlibimport osim原创 2021-09-22 11:27:29 · 139 阅读 · 0 评论 -
怎样从0开始搭建一个测试框架_10——数据生成器(全网最全)
有时候接口或UI上传入的数据需要符合指定的格式,我们在参数化的过程中又不愿意在excel中一遍遍去构造这样的数据,这时我们可以加入生成器来为我们产生符合某些固定格式的数据。这里我推荐一个挺有意思的库,Faker,能够为你产生各种假数据在utils中创建一个generator.py,用来生成数据# -*- coding: utf-8 -*-"""@author: lucas@Function:一些生成器方法,生成随机数,手机号,以及连续数字等@file: generator.py@t原创 2021-09-21 09:01:40 · 480 阅读 · 0 评论 -
怎样从0开始搭建一个测试框架_9——抽取器
对接口测试来说,很多时候,我们的用例不是一次请求就OK了的,而是多个请求复合的,我们第二个请求可能会用到第一个请求返回值中的数据,这就要我们再次进行封装,做一个抽取器,从结果中抽取部分信息。这里我们会用到JMESPath库,这是一个让我们通过类似于xpath或点分法来定位json中的节点的库我们在utils中创建extractor.py文件,实现对响应中数据的抽取# -*- coding: utf-8 -*-"""@author: lucas@Function: 抽取器,从响应原创 2021-09-21 08:55:13 · 148 阅读 · 0 评论 -
怎样从0开始搭建一个测试框架_8——断言
上次我们的用例中增加了断言。断言(检查点)这个东西对测试来说很重要。不然你怎么知道一个测试结果是对是错呢。unittest为我们提供了很多很好的断言,但是对于我们的项目可能是不够的。我们需要封装自己的断言方法。这里我们简单封装一个断言,在utils中创建assertion.py文件,在其中创建断言:# -*- coding: utf-8 -*-"""@author: lucas@Function: 在这里添加各种自定义的断言,断言失败抛出AssertionError就OK。@f原创 2021-09-18 09:32:54 · 172 阅读 · 0 评论 -
怎样从0开始搭建一个测试框架_7——接口
前面我们都是用的UI自动化的用例来实现的,如果我们想做接口框架怎么办?今天就扩展一下接口测试模块,这里我们需要用到requests库(接口是HTTP类型的,其他类型也有对应的库)在utils中创建一个client.py的文件,在其中创建一个HTTPClient类:# -*- coding: utf-8 -*-"""@author: lucas@Function: 添加用于接口测试的client,对于HTTP接口添加HTTPClient,发送http请求。 ...原创 2021-09-17 16:43:38 · 191 阅读 · 0 评论 -
怎样从0开始搭建一个测试框架_6——PageObject
针对UI自动化,接下来我们用PO思想进行下封装。对于不同的项目,不同的页面,我们都需要选择浏览器、打开网址等,我们可以把这些操作抽象出来,让不同的用例去调用,只需要传入不同参数即可,不用一遍遍复制粘贴。为此,我们对test目录再次进行分层,创建page、common、case、suite四个目录:test |--case(用例文件) |--common(跟项目、页面无关的封装) |--page(页面) |--suite(测试套件,用来组织用例)我们首...原创 2021-09-15 09:15:39 · 185 阅读 · 0 评论 -
怎样从0开始搭建一个测试框架_5——邮件
我们已经有了日志、有了报告,生成报告之后需要给其他组员看,自然要有发邮件的功能。这块我们要用到smtplib和email库。在utils中创建mail.py,初始化时传入全部所需数据,message是正文,可不填,path可以传list或者str;receiver支持多人,用”;”隔开就行# -*- coding: utf-8 -*-"""@author: lucas@Function: 邮件类。用来给指定用户发送邮件。可指定多个收件人,可带附件。@file: mail.py原创 2021-09-14 09:54:45 · 341 阅读 · 0 评论 -
怎样从0开始搭建一个测试框架_4——参数化
这一步我们需要用到Python库xlrd我们已经把配置分离,并添加了log,接下来我们应该尝试着进行数据分离,进行参数化了。我们修改file_reader.py文件,添加ExcelReader类,实现读取excel内容的功能:# -*- coding: utf-8 -*-"""@author: lucas@Function: 文件读取,YamlReader读取yaml文件,ExcelReader读取excel@file: file_reader.py@time: 2021/原创 2021-09-13 09:57:17 · 211 阅读 · 0 评论 -
怎样从0开始搭建一个测试框架_3——日志
怎样从0开始搭建一个测试框架_2这部分需要预先了解Python的内置库logging,不会用的可以先看下博主的 【Python logging 模块】学习下logging使用接下来我们为我们的框架加上log,在utils中创建一个log.py文件,Python有很方便的logging库,我们对其进行简单的封装,使框架可以很简单地打印日志(输出到控制台以及日志文件)。# -*- coding: utf-8 -*-"""@author: lucas@Function:@file原创 2021-09-10 10:40:32 · 208 阅读 · 0 评论