【selenium学习中级篇 -19】封装一个浏览器引擎类
结构目录如上:
Base包:存放一些基类,这次我们要封装的浏览器引擎类放在这个包里面
TestSuites:存放测试用例,新建Test.py来测试这个引擎类
Utils:存放工具类,chrome和firefox的驱动放在这里面
Browser_engine.py
import os from selenium import webdriver class BrowserEngine(object): def open_browser(self): ''' 设定浏览器类型 ''' browser = "Chrome" ''' 使用if...else语句来判断浏览器类型 只写了两个,如果需要IE,请自行添加 ''' if (browser == "Chrome"): chrome_driver_path = os.path.dirname(os.path.abspath('.')) + '/Utils/chromedriver.exe' driver = webdriver.Chrome(executable_path=chrome_driver_path) elif (browser == "Firefox"): firefox_driver_path = os.path.dirname(os.path.abspath('.')) + '/Utils/geckodriver.exe' driver = webdriver.Firefox(executable_path=firefox_driver_path) else: chrome_driver_path = os.path.dirname(os.path.abspath('.')) + '/Utils/chromedriver.exe' driver = webdriver.Chrome(executable_path=chrome_driver_path) driver.maximize_window() driver.implicitly_wait(5) return driver
Test.py
from Base.Browser_engine import BrowserEngine class TestBrowerEngine(object): def test_open_browser(self): browser = BrowserEngine() driver = browser.open_browser() test1 = TestBrowerEngine() test1.test_open_browser()
总结:
1.如果需要修改启动浏览器的类型,可以更改Browser_engine.py中的browser的值,去测试浏览器的启动,目前放在代码中,后面可以通过读取配置的方式进行优化
2.启动firefox时,如果遇到报newSession的问题,可以更新geckodriver.exe到最新版本
我走的很慢,但从不后退