封装一个自己的类-浏览器引擎类

前一篇文章我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动那个浏览器。这里我们暂时,支持三大浏览器(IE,Chrome,Firefox)。这里有一个前提条件,在基础篇中,启动三大浏览器的driver文件,检查下你的Python安装路径下有没有这三个driver插件,如果没有,请回到基础篇的如何启动火狐和IE浏览器文章去看看如何做。

我们继续在test1这个包下新建一个browser_engine.py文件,然后在另外一个包下新建一个test.py文件去测试这个浏览器引擎类是否工作正常。这个浏览器引擎类,我们一开始写简单一点,只写启动浏览器。(海量免费学习资料,软件测试交流:1140267353群,还会有同行一起技术交流)

先看看browser_engine.py中的代码:

#coding=utf-8

from selenium importwebdriverclassBrowserEngine(object):"""定义一个浏览器引擎类,根据browser_type的值去,控制启动不同的浏览器,这里主要是IE,Firefox, Chrome"""

def __init__(self, driver):

self.driver=driver

browser_type= "IE" #maybe Firefox, Chrome, IE

defget_browser(self):"""通过if语句,来控制初始化不同浏览器的启动,默认是启动Chrome

:return: driver"""

if self.browser_type == 'Firefox':

driver=webdriver.Firefox()elif self.browser_type == 'Chrome':

driver=webdriver.Chrome()elif self.browser_type == 'IE':

driver=webdriver.Ie()else: driver =webdriver.Chrome()

driver.maximize_window()

driver.implicitly_wait(10)return driver

再看看test.py代码,进行测试,更改browser_engine.py中browser_type的值,去测试三大浏览器是否启动正常。

#coding=utf-8

importtimefrom test1.browser_engine importBrowserEngineclassTestBrowserEngine(object):defopen_browser(self):

browserengine=BrowserEngine(self)

driver=browserengine.get_browser()

tbe=TestBrowserEngine()

tbe.open_browser()

目前,自定义的浏览器引擎类到这里就封装好了,只支持打开不同浏览器,需要手动修改,引擎类中browser_type的值。看起来功能简单,但是我们只是需要学习这种做事的方式和思维,在下一个部分,框架设计的时候,我会再告诉大家如何去加强这个引擎类的功能,到时候去修改配置文件中的浏览器类型,而不是修改代码中的字段。通过修改配置文件,从而去打开不同浏览器,并开始测试相关脚本。

Python读取配置文件内容

文来介绍下Python中如何读取配置文件。任何一个项目,都涉及到了配置文件和管理和读写,Python支持很多配置文件的读写,这里我们就介绍一种配置文件格式的读取数据,叫ini文件。Python中有一个类ConfigParser支持读ini文件。(海量免费学习资料,软件测试交流:1140267353群,还会有同行一起技术交流)

1. 在项目下,新建一个文件夹,叫config,然后在这个文件夹下新建一个file类型的文件:config.ini

文件内容如下:

#this is config file, only store browser type and server URL

[browserType]#browserName = Firefox

browserName =Chrome#browserName = IE

[testServer]

URL= https://www.baidu.com#URL = http://www.google.com

2. 百度搜索一下,python中如何获取当前项目的根目录的相对路径

这里采用:

os.path.dirname(os.path.abspath('.'))

3. 在另外一个包下新建一个测试类,用来测试读取配置文件是否正常。

#coding=utf-8

importConfigParserimportosclassTestReadConfigFile(object):defget_value(self):

root_dir= os.path.dirname(os.path.abspath('.')) #获取项目根目录的相对路径

printroot_dir

config=ConfigParser.ConfigParser()

file_path= os.path.dirname(os.path.abspath('.')) + '/config/config.ini'config.read(file_path)

browser= config.get("browserType", "browserName")

url= config.get("testServer", "URL")return(browser,url) #返回的是一个元组

trcf=TestReadConfigFile()print trcf.get_value()

你可以试试更改config.ini的内容,看看测试打印出来是不是你更改的东西,在配置文件一般#表示注释,你想要哪行配置代码起作用,你就把前面的#去除,并且在注释其他同一个区域。在ini文件中 中括号包裹起来的部分叫section,了解一下就可以。

上一篇    Python+Selenium中级篇之3-二次封装Selenium中几个方法

下一篇    Python+Selenium中级篇之5-Python获取系统时间和格式化时间显示/Python中字符串切割操作

以上仅供参考和借鉴,希望对你有所帮助!

点个关注不迷路!!!

小枫这几天整理的测试资料不知道大家会不会,哪方面需要改善,希望大家多多留言给点意见。

python火狐配置文件_Python+Selenium中级篇之4-封装一个自己的类-浏览器引擎类/Python读取配置文件内容...相关推荐

  1. 『中级篇』docker-swarm创建一个多节点集群(43)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker-swarm创建一个多节点集群(43) docker Swarm是Docker官方提供的一款集群管理工具 ...

  2. python print 退格_Python+Selenium练习篇之12-组合键-退格键删除文字/鼠标右键

    退格键删除文字 前面一篇文章介绍了,常规清除文本输入框字符的方法clear(), 本文介绍 相关脚本代码如下,这里用百度首页搜索输入框举例: #coding=utf-8 importtimefrom ...

  3. 【Python技能树共建】selenium入手篇

    Python selenium 入手篇 selenium 项目最早是为测试浏览器.网页开发的,并且广泛应用于爬虫,需要注意 selenium 不是单个软件,它其实由一系列的工具组成. selenium ...

  4. python获取窗口句柄_Python+selenium 获取浏览器窗口坐标、句柄的方法

    1.0 获取浏览器窗口坐标 python目录可找到Webdriver.py 文件定义了get_window_rect()函数,可获取窗口的坐标和大小(长宽),但出现"Command not ...

  5. python中二进制文件_Python学习基础篇 -6: Python中的文件操作

    前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 文件有有什么用 文件可以看作一个仓库 ...

  6. python自动化简历_python+selenium实现简历自动刷新的示例代码

    本文用到的文件的下载地址 百度网盘链接: https://pan.baidu.com/s/1tmpdEfAZKff5TOMAitUXqQ 提取码: e6at 1 安装Python 和 selenium ...

  7. python list合并_python基础===两个list合并成一个dict的方法

    def Run(): list2 = [, , , , ]; list3 = ["a", "b", "c", "d",& ...

  8. 写入文件python并用序号_Python和excel表合成示例:向表中添加序列号,向表的现有内容添加索引,与,Excel,表格,综合,实例,给,增加,序号,对,已有...

    Python 与 Excel 表格综合实例(一):给表格增加序号,根据表格已有内容增加索引 前言: 前面我们花了6篇博客,把Python的xlwt与xlrd两个第三方模块对Excel表格的基础操作讲完 ...

  9. python类型转换异常_python知识:json格式文本;异常处理;字符串处理;unicode类型和str类型转换...

    python进程中的实例和json格式的字符串之间的映射关系是非常直接的,相当于同一个概念被编码成不同的表示: stream in json form ----json.loads(str)----- ...

最新文章

  1. 新一届最强预训练模型上榜,出于BERT而胜于BERT
  2. 会linux基本命令是脚本语言吗,如何理解Linux Shell和基本Shell脚本语言?
  3. 蓝牙冷知识:为啥叫“蓝”牙,不叫“白”牙?
  4. 手环升级鸿蒙设备名单,鸿蒙2.0升级名单已确认-可首批升级的42款机型推荐
  5. oracle负数怎么比较大小,输出负数【oracle学习吧】_百度贴吧
  6. v210 启动脚本分析
  7. 分子进化和系统发育的基础知识
  8. Ehcache详细解读
  9. python读取大文件的某行_python 大文件以行为单位读取方式比对
  10. btsync 分享资源
  11. PySide2 QCheckBox控件应用
  12. Apache Flink 在双十一流量洪峰下的最佳实践
  13. 基于python+django框架+Mysql数据库的校园教室实验室预约系统设计与实现
  14. 芯片丨英特尔拟收购初创公司Barefoot Networks 后者曾获腾讯阿里投资
  15. 如何修改鼠标右键新建对象的顺序
  16. 考研经验帖——特别说明很适合8月才开始准备的小伙伴
  17. edvac是商用计算机吗,计算机的基础作业1
  18. datadog的数据流转
  19. 商城系统搭建支付通道
  20. iPhone 13 哪便宜?拼多多百亿补贴!

热门文章

  1. macaca使用中问题解决方法整理
  2. SQL update 多表连接方法
  3. spring项目获取ServletContext
  4. 面向程序员编程——精研排序算法
  5. 使用 HTML5 File API 实现client log
  6. asp.net httprequest httpresponse
  7. 神经网络其实并不需要那么深!普林斯顿大学英特尔提出ParNet,12层的网络就能达到80%以上的准确率!...
  8. ACMMM 2021-多模态宝藏!京东梅涛团队重磅开源第一个适用于多个任务的多模态代码库x-modaler...
  9. CVPR 2020 论文大盘点-文本图像篇
  10. 发布!天池布匹疵点检测大赛解决方案与Baseline(acc:85%左右,mAP:52%左右)