selenium+python 完整自动化测试脚本及讲解(二、object包介绍)

selenium+python 完整自动化测试脚本及讲解(二、object包介绍)

  不好意思,全两天有事,断更了,还望谅解。
在这里插入图片描述

Object 包主要保存了 WebDriver 对象的获取方式,与创建方式。
在这里插入图片描述

文件名简介
DRIVER对象的获取,新建方法
SINGLE_DRIVER保存对象,完成单例模式
browser_drivers保存浏览器驱动,AutoIt插件

DRIVER.py 文件内容源码

# -*- coding: utf-8 -*-
from selenium import webdriver

from utils.OUTER_TOOLS import get_abspath
from utils.PROPERTIES_TOOLS import getProperties
from object.SINGLE_DRIVER import Driver


def 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] = driver
    elif 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) - 1
    return 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

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值