博文章节
本机环境介绍
编码语言(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秒