内部网站的作用/成都网站排名 生客seo
selenium+python 完整自动化测试脚本及讲解(二、object包介绍)
不好意思,全两天有事,断更了,还望谅解。
Object 包主要保存了 WebDriver 对象的获取方式,与创建方式。
文件名 | 简介 |
---|---|
DRIVER | 对象的获取,新建方法 |
SINGLE_DRIVER | 保存对象,完成单例模式 |
browser_drivers | 保存浏览器驱动,AutoIt插件 |
DRIVER.py 文件内容源码
# -*- coding: utf-8 -*-
from selenium import webdriverfrom utils.OUTER_TOOLS import get_abspath
from utils.PROPERTIES_TOOLS import getProperties
from object.SINGLE_DRIVER import Driverdef init_Driver(is_new=None):"""初始化,driver 对象,保存在object.SINGLE_DRIVER 的 Driver数组中:param is_new: 是否创建一个新的浏览器对象is_new=None Driver数组中的第 1 个元素赋值is_new=new 追加到Driver数组中:return: 无 return"""# 在 init.properties 文件中获取配置内容show = getProperties('show_browser_window')webdriver_option = getProperties('webdriver_option')executable_path = get_abspath() + "\\object\\browser_drivers\\"if not isinstance(show, str):raise Exception("show 参数类型不配,使用‘true’or‘false’")if not isinstance(webdriver_option, str):raise Exception("show 参数类型不配,使用‘true’or‘false’")if not webdriver_option == "Chrome" or webdriver_option == "Firefox":raise Exception("目前只支持 谷歌浏览器:Chrome\n 与 火狐浏览器:Firefox")if show == "true":if webdriver_option == "Firefox":driver = webdriver.Firefox(executable_path=executable_path + "geckodriver.exe")else:driver = webdriver.Chrome(executable_path=executable_path + "chromedriver.exe")else:if webdriver_option == "Firefox":Firefox_options = webdriver.FirefoxOptions()Firefox_options.add_argument('--headless')driver = webdriver.Firefox(firefox_options=Firefox_options,executable_path=executable_path + "geckodriver.exe")else:Options = webdriver.ChromeOptions()Options.add_argument('--headless')driver = webdriver.Chrome(chrome_options=Options,executable_path=executable_path + "chromedriver.exe")driver.implicitly_wait(int(getProperties('implicitly_wait')))# driver.get(getProperties('url'))# is_new=None Driver数组中的第 1 个元素赋值# is_new=new 追加到Driver数组中if is_new is None:Driver[0] = driverelif is_new == "new":Driver.append(driver)def set_Driver_implicitly_wait(driver, time: int = 0) -> None:""":param driver: WebDriver 对象:param time: 设置新的等待时间:return:"""if time == 0:driver.implicitly_wait(int(getProperties('implicitly_wait')))else:driver.implicitly_wait(time)# 初始化好 一个 Driver 对象
init_Driver()def getDriver(index: int = 0):"""返回已经创建好的 Driver"""# 防止下标越界if len(Driver) < index:index = len(Driver) - 1return Driver[index]def newDriver():""":return: 新创建一个Driver对象,并返回新创建的Driver对象"""init_Driver("new")return Driver[len(Driver) - 1]
OUTER_TOOLS.py
# -*- coding: utf-8 -*-
from selenium.webdriver.remote.webdriver import WebDriver
# 初识化 Driver[0] = WebDriver 完全是为了编辑器认识他
Driver = [WebDriver]
引用的外部文件:
# 参考网址:https://blog.csdn.net/weixin_43664254/article/details/90512419
from utils.OUTER_TOOLS import get_abspath
from utils.PROPERTIES_TOOLS import getProperties