zoukankan      html  css  js  c++  java
  • selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())---基于python

    前一篇文章我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动那个浏览器。这里我们暂时,支持三大浏览器(IE,Chrome,Firefox)。这里有一个前提条件,在基础篇中,启动三大浏览器的driver文件,检查下你的Python安装路径下有没有这三个driver插件,如果没有,请回到基础篇的如何启动火狐和IE浏览器文章去看看如何做。

          我们继续在test1这个包下新建一个browser_engine.py文件,然后在另外一个包下新建一个test.py文件去测试这个浏览器引擎类是否工作正常。这个浏览器引擎类,我们一开始写简单一点,只写启动浏览器。

    先看看browser_engine.py中的代码:

    # coding=utf-8
    from selenium import webdriver


    class BrowserEngine(object):
    """
    定义一个浏览器引擎类,根据browser_type的值去,控制启动不同的浏览器,这里主要是IE,Firefox, Chrome
    """
    def __init__(self, driver):
    self.driver = driver

    browser_type = "IE" # maybe Firefox, Chrome, IE

    def get_browser(self):
    """
    通过if语句,来控制初始化不同浏览器的启动,默认是启动Chrome
    :return: driver
    """

    if self.browser_type == 'Firefox':
    driver = webdriver.Firefox()
    elif self.browser_type == 'Chrome':
    driver = webdriver.Chrome()
    elif self.browser_type == 'IE':
    driver = webdriver.Ie()
    else: driver = webdriver.Chrome()

    driver.maximize_window()
    driver.implicitly_wait(10)

    return driver

    再看看test.py代码,进行测试,更改browser_engine.py中browser_type的值,去测试三大浏览器是否启动正常。

    # coding=utf-8
    import time
    from test1.browser_engine import BrowserEngine


    class TestBrowserEngine(object):

    def open_browser(self):
    browserengine = BrowserEngine(self)
    driver = browserengine.get_browser()


    tbe = TestBrowserEngine()
    tbe.open_browser()
           目前,自定义的浏览器引擎类到这里就封装好了,只支持打开不同浏览器,需要手动修改,引擎类中browser_type的值。看起来功能简单,但是我们只是需要学习这种做事的方式和思维,在下一个部分,框架设计的时候,我会再告诉大家如何去加强这个引擎类的功能,到时候去修改配置文件中的浏览器类型,而不是修改代码中的字段。通过修改配置文件,从而去打开不同浏览器,并开始测试相关脚本。
    ---------------------
    作者:Anthony_tester
    来源:CSDN
    原文:https://blog.csdn.net/u011541946/article/details/70171401
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    读书笔记之理想设计的特征
    一些javascript 变量声明的 疑惑
    LINQ 使用方法
    Google MySQL tool releases
    读书笔记之设计的层次
    EF之数据库连接问题The specified named connection is either not found in the configuration, not intended to be used with the Ent
    转载 什么是闭包
    javascript面向对象起步
    Tips
    数据结构在游戏中的应用
  • 原文地址:https://www.cnblogs.com/lnn123/p/10475675.html
Copyright © 2011-2022 走看看