python火狐配置文件_Python+Selenium中级篇之4-封装一个自己的类-浏览器引擎类/Python读取配置文件内容...
封装一个自己的类-浏览器引擎类
前一篇文章我们知道了,如何去封装几个简单的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读取配置文件内容...相关推荐
- 『中级篇』docker-swarm创建一个多节点集群(43)
原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker-swarm创建一个多节点集群(43) docker Swarm是Docker官方提供的一款集群管理工具 ...
- python print 退格_Python+Selenium练习篇之12-组合键-退格键删除文字/鼠标右键
退格键删除文字 前面一篇文章介绍了,常规清除文本输入框字符的方法clear(), 本文介绍 相关脚本代码如下,这里用百度首页搜索输入框举例: #coding=utf-8 importtimefrom ...
- 【Python技能树共建】selenium入手篇
Python selenium 入手篇 selenium 项目最早是为测试浏览器.网页开发的,并且广泛应用于爬虫,需要注意 selenium 不是单个软件,它其实由一系列的工具组成. selenium ...
- python获取窗口句柄_Python+selenium 获取浏览器窗口坐标、句柄的方法
1.0 获取浏览器窗口坐标 python目录可找到Webdriver.py 文件定义了get_window_rect()函数,可获取窗口的坐标和大小(长宽),但出现"Command not ...
- python中二进制文件_Python学习基础篇 -6: Python中的文件操作
前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 文件有有什么用 文件可以看作一个仓库 ...
- python自动化简历_python+selenium实现简历自动刷新的示例代码
本文用到的文件的下载地址 百度网盘链接: https://pan.baidu.com/s/1tmpdEfAZKff5TOMAitUXqQ 提取码: e6at 1 安装Python 和 selenium ...
- python list合并_python基础===两个list合并成一个dict的方法
def Run(): list2 = [, , , , ]; list3 = ["a", "b", "c", "d",& ...
- 写入文件python并用序号_Python和excel表合成示例:向表中添加序列号,向表的现有内容添加索引,与,Excel,表格,综合,实例,给,增加,序号,对,已有...
Python 与 Excel 表格综合实例(一):给表格增加序号,根据表格已有内容增加索引 前言: 前面我们花了6篇博客,把Python的xlwt与xlrd两个第三方模块对Excel表格的基础操作讲完 ...
- python类型转换异常_python知识:json格式文本;异常处理;字符串处理;unicode类型和str类型转换...
python进程中的实例和json格式的字符串之间的映射关系是非常直接的,相当于同一个概念被编码成不同的表示: stream in json form ----json.loads(str)----- ...
最新文章
- 新一届最强预训练模型上榜,出于BERT而胜于BERT
- 会linux基本命令是脚本语言吗,如何理解Linux Shell和基本Shell脚本语言?
- 蓝牙冷知识:为啥叫“蓝”牙,不叫“白”牙?
- 手环升级鸿蒙设备名单,鸿蒙2.0升级名单已确认-可首批升级的42款机型推荐
- oracle负数怎么比较大小,输出负数【oracle学习吧】_百度贴吧
- v210 启动脚本分析
- 分子进化和系统发育的基础知识
- Ehcache详细解读
- python读取大文件的某行_python 大文件以行为单位读取方式比对
- btsync 分享资源
- PySide2 QCheckBox控件应用
- Apache Flink 在双十一流量洪峰下的最佳实践
- 基于python+django框架+Mysql数据库的校园教室实验室预约系统设计与实现
- 芯片丨英特尔拟收购初创公司Barefoot Networks 后者曾获腾讯阿里投资
- 如何修改鼠标右键新建对象的顺序
- 考研经验帖——特别说明很适合8月才开始准备的小伙伴
- edvac是商用计算机吗,计算机的基础作业1
- datadog的数据流转
- 商城系统搭建支付通道
- iPhone 13 哪便宜?拼多多百亿补贴!
热门文章
- macaca使用中问题解决方法整理
- SQL update 多表连接方法
- spring项目获取ServletContext
- 面向程序员编程——精研排序算法
- 使用 HTML5 File API 实现client log
- asp.net httprequest httpresponse
- 神经网络其实并不需要那么深!普林斯顿大学英特尔提出ParNet,12层的网络就能达到80%以上的准确率!...
- ACMMM 2021-多模态宝藏!京东梅涛团队重磅开源第一个适用于多个任务的多模态代码库x-modaler...
- CVPR 2020 论文大盘点-文本图像篇
- 发布!天池布匹疵点检测大赛解决方案与Baseline(acc:85%左右,mAP:52%左右)