博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python+Selenium中级篇之4-封装一个自己的类-浏览器引擎类
阅读量:4301 次
发布时间:2019-05-27

本文共 1613 字,大约阅读时间需要 5 分钟。

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

      我们继续在test1这个包下新建一个browser_engine.py文件,然后在另外一个包下新建一个test.py文件去测试这个浏览器引擎类是否工作正常。这个浏览器引擎类,我们一开始写简单一点,只写启动浏览器。

先看看browser_engine.py中的代码:

# coding=utf-8from selenium import webdriverclass BrowserEngine(object):    """    定义一个浏览器引擎类,根据browser_type的值去,控制启动不同的浏览器,这里主要是IE,Firefox, Chrome    """    def __init__(self, driver):        self.driver = driver    browser_type = "IE"   # maybe Firefox, Chrome, IE    def get_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-8import timefrom test1.browser_engine import BrowserEngineclass TestBrowserEngine(object):    def open_browser(self):        browserengine = BrowserEngine(self)        driver = browserengine.get_browser()tbe = TestBrowserEngine()tbe.open_browser()
       目前,自定义的浏览器引擎类到这里就封装好了,只支持打开不同浏览器,需要手动修改,引擎类中browser_type的值。看起来功能简单,但是我们只是需要学习这种做事的方式和思维,在下一个部分,框架设计的时候,我会再告诉大家如何去加强这个引擎类的功能,到时候去修改配置文件中的浏览器类型,而不是修改代码中的字段。通过修改配置文件,从而去打开不同浏览器,并开始测试相关脚本。

转载地址:http://qgxws.baihongyu.com/

你可能感兴趣的文章
乐观锁的一种实现方式——CAS
查看>>
JAVA线程间通信的几种方式
查看>>
IDEA中怎么新建package包,只有directory选项
查看>>
django admin 增加查看权限
查看>>
django后台加载从15秒优化到1秒的过程小记
查看>>
chrome不显示Django-suit左侧菜单栏
查看>>
Python区间库python-intervals
查看>>
django admin 登录用户名密码错误提示
查看>>
python3 AttributeError: 'function' object has no attribute 'func_name'
查看>>
解决ubuntu下修改my.cnf设置字符集导致mysql无法启动
查看>>
根据进程的PID查询对应端口号
查看>>
Ubuntu安装指定版本的docker
查看>>
MySQL show processlist过滤
查看>>
Python日志logging的levelname格式化参数1.1s小记
查看>>
ubuntu虚拟机VMware桥接模式无法自动化获取IP的解决方法
查看>>
Python debug 报错:SystemError: unknown opcode
查看>>
Python将树结构转换成字典形式的多级菜单结构,写入json文件
查看>>
关闭linux防火墙让windows宿主机访问ubuntu虚拟机web服务以及docker
查看>>
pycharm 找不到同目录文件,但是终端中正常的小记
查看>>
安装了grpc但是无法导入:ImportError: No module named 'grpc'
查看>>