Python3-Selenium3实现简单的浏览器引擎初始化

博文章节

  • 博文章节
    • 本机环境介绍
    • 项目目录结构
    • 浏览器引擎类
    • 浏览器类型类
    • 系统配置类
    • 测试类
    • 浏览器驱动下载地址注意要与现有浏览器版本的匹配


本机环境介绍

编码语言(Python)

(py3env) C:\Users\XXX\iCloudDrive\PycharmProjects\SAT>python -V
Python 3.6.2

Selenium版本(3.7.0)

(py3env) C:\Users\XXX\iCloudDrive\PycharmProjects\SAT>pip show selenium
Name: selenium
Version: 3.7.0
Summary: Python bindings for Selenium

项目目录结构

C:.
├─docs  # 文档目录
├─logs  # 日志目录
├─sat
│  ├─ui
│  │  ├─base
│  │  │  └─__init__.py
│  │  │  └─browser_engine.py  # 浏览器引擎类
│  │  │  └─browser_type.py  # 浏览器类型类(暂没使用)
│  │  ├─resource
│  │  │  └─chromedriver.exe  # Chrome浏览器驱动
│  │  │  └─geckodriver.exe  # Firefox浏览器驱动
│  │  │  └─IEDriverServer.exe  # IE浏览器驱动
│  ├─utils
│  │  └─__init__.py
│  │  └─common.py  # 公共工具类
│  └─__init__.py
│  └─settings.py  # 系统配置类
└─test
│  └─__init__.py
│  └─test.py  # 测试类
└─requirements.txt  # 包管理

浏览器引擎类

browser_engine.py

# -*- coding: utf-8 -*-

"""
  @desc: 浏览器引擎
  @author: Amio_
  @file: browser_engine.py
  @date: 2017/12/14 下午12:05
"""
import os

from selenium import webdriver

from sat import settings


class BrowserEngine(object):
    CURRENT_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), '../resource')
    CHROME_DRIVER = os.path.join(CURRENT_PATH, 'chromedriver.exe')
    FIREFOX_DRIVER = os.path.join(CURRENT_PATH, 'geckodriver.exe')
    IE_DRIVER = os.path.join(CURRENT_PATH, 'IEDriverServer.exe')

    def __init__(self, browser=None):
        if browser is None:
            self._browser_type = settings.DEFAULT_BROWSER
        else:
            self._browser_type = browser
        self._driver = None

    def init_driver(self):
        if self._browser_type.lower() == 'chrome':
            self._driver = webdriver.Chrome(executable_path=self.CHROME_DRIVER)
        elif self._browser_type.lower() == 'firefox':
            self._driver = webdriver.Firefox(executable_path=self.FIREFOX_DRIVER)
        elif self._browser_type.lower() == 'ie':
            self._driver = webdriver.Ie(executable_path=self.IE_DRIVER)
        else:
            ValueError('传入的浏览器类型错误,目前仅支持Chrome/Firefox/IE.')
        self._driver.implicitly_wait(time_to_wait=settings.UI_WAIT_TIME)
        return self._driver

浏览器类型类

browser_type.py(暂没使用)

# -*- coding: utf-8 -*-

"""
  @desc: 浏览器类型
  @author: Amio_
  @file: browser_type.py
  @date: 2017/12/14 下午12:08
"""

CHROME = 'Chrome'
FIREFOX = 'Firefox'
INTERNET_EXPLORER = 'IE'

系统配置类

settings.py

# -*- coding: utf-8 -*-

"""
  @desc: 系统配置项
  @author: Amio_
  @file: settings.py
  @date: 2017/12/14 下午12:09
"""
# UI自动化默认浏览器
DEFAULT_BROWSER = 'Chrome'
# 找元素默认等待时间(秒)
UI_WAIT_TIME = 30

测试类

test.py

# -*- coding: utf-8 -*-

"""
  @desc: 测试类
  @author: Amio_
  @file: test.py
  @date: 2017/12/14 下午12:11
"""
import os

from sat.ui.base.browser_engine import BrowserEngine

if __name__ == '__main__':
    driver1 = BrowserEngine().init_driver()  # 默认Chrome浏览器,超时时间30秒 
    driver2 = BrowserEngine(browser='firefox').init_driver()  # 指定Firefox浏览器,超时时间30秒

浏览器驱动下载地址(注意要与现有浏览器版本的匹配

  • chromedriver.exe
  • geckodriver.exe
  • IEDriverServer.exe

你可能感兴趣的:(自动化测试)