前一篇文章我们知道了,如何去封装几个简单的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
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/lnn123/p/10475675.html

selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())---基于python...相关推荐

  1. python请输入_python中的三种输入方式

    python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...

  2. selenium中的三种等待方法

    在selenium中,当我们定位的元素由于网络原因还没加载出来,浏览器找不到我们要定位的元素就会报错.等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,常用的等待方法有: sleep() -- ...

  3. selenium中的三种等待方式以及显示等待和隐式等待区别

    selenium的三种等待方式 selenium中一般分为三种等待方式:显示等待.隐式等待.sleep强制等待 1.显示等待(有条件) 程序提前指定等待条件和等待时间,在查找元素时,判断规定时间内是否 ...

  4. 【转】-【Python】- 【selenium】 -selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())

    -- 学习Python自动化测试的菜鸡,现在是selenium库webdriver的学习时间 [问题] 在获取页面元素的文本的时候,总是获取不到,或者显示为空: [分析] 页面加载不完全: [解决措施 ...

  5. Selenium中的三种等待方式

    在写ui自动化的脚本过程中,如果没有加入等待方式,网络不好的时候通常页面元素没有加载出来,脚本就执行操作定位了,很容易找不到元素,这时候,脚本就会出现异常,还有一种页面是异步加载的,也需要用到等待方式 ...

  6. 简单阐述下OC中UIImage三种创建方式~~~

    一. 直接使用imageNamed进行创建 1 UIImage * image = [UIImage imageNamed:@"1.jpg"]; 简单说一下这种方式的优缺点: 优点 ...

  7. asp.net Session在web.config中的三种配置方式——详解

    这段代码就是设置session在web.config中的存储方式. < sessionState mode="Off|InProc|StateServer|SQLServer" ...

  8. ios wifi 定位_iOS 中的三种定位方式

    1.手机基站定位 原理: 每个手机基站都有一个标识符,iPhone或3G iPad可以搜集周围所有收到信号的基站和它们的标识符,通过联网发送到苹果云端服务器,再由服务器根据这些基站的的位置信息查询并计 ...

  9. java中map的遍历方法_Java中Map的三种遍历方式

    集合中的三种遍历方式,如下代码: import java.util.Collection; import java.util.HashMap; import java.util.Iterator; i ...

最新文章

  1. 如何在pandas中使用loc、iloc函数进行数据索引
  2. 几个C++问题提示的莫名其妙,附录解决方法
  3. 两个变量交换值 和按位异或的理解
  4. 模式的学习笔记----转摘自把爱好作为自己工作的人
  5. mysql悲观锁 更新_MySQL学习笔记(四)悲观锁 for update
  6. QString之arg用法
  7. canvas图像保存
  8. CSS 盒子模型(Box model)中的 padding 与 margin
  9. python 多线程读写文件错误_python多线程老是报错。大神帮忙看看哈?
  10. Keil 文本对不上格
  11. 找树根和孩子(信息学奥赛一本通-T1336)
  12. fmea软件_新版FMEA易错点梳理(一):范围界定和过程流程图-SGS
  13. JAVA加勒比_【JAVA】synchronized关键字
  14. NOIP2013 复盘
  15. 马哥python培训班靠谱吗
  16. 台式计算机硬盘主要接口,硬盘接口类型,详细教您怎么看硬盘接口的类型
  17. TypeScript 的类型检查和类型保护
  18. JustAuth升级到v1.8.1版本,新增AuthState工具类,可自动生成state
  19. 运算放大器基本参数—压摆率(直观解释)
  20. sqlite编辑器 linux,SQLite编辑器

热门文章

  1. [特征工程系列五]基于蒙特卡洛搜索树的半自动特征工程方案
  2. 沈阳构建智慧产业体系 大数据企业5年后将超200家
  3. 转载/VMware Workstation环境下的Linux网络设置/适用于无线网络
  4. ubuntu15.04 TLS
  5. Failure Groups in ASM
  6. 如何实现报表设计中的高精度报表套打?
  7. TextBox灵异事件之背后神秘的深度灵异事件真相揭秘
  8. cassandra java driver
  9. Scrum 项目 7.0
  10. Enigma Virtual Box:生成可执行文件。