Python+Selenium中级篇之4-封装一个自己的类-浏览器引擎类

本文介绍了一个Selenium浏览器引擎类的封装方法,该类可根据不同的浏览器类型(如Firefox、Chrome和IE)启动相应的浏览器实例。通过修改配置而非代码,即可轻松切换测试所用的浏览器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

先看看browser_engine.py中的代码:

# coding=utf-8
from selenium import webdriver


class 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-8
import time
from test1.browser_engine import BrowserEngine


class TestBrowserEngine(object):

    def open_browser(self):
        browserengine = BrowserEngine(self)
        driver = browserengine.get_browser()


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


评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值