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
版权声明:本文为博主原创文章,转载请附上博文链接!
转载于:https://www.cnblogs.com/lnn123/p/10475675.html
selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())---基于python...相关推荐
- python请输入_python中的三种输入方式
python中的三种输入方式 python2.X python2.x中以下三个函数都支持: raw_input() input() sys.stdin.readline() raw_input( )将 ...
- selenium中的三种等待方法
在selenium中,当我们定位的元素由于网络原因还没加载出来,浏览器找不到我们要定位的元素就会报错.等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,常用的等待方法有: sleep() -- ...
- selenium中的三种等待方式以及显示等待和隐式等待区别
selenium的三种等待方式 selenium中一般分为三种等待方式:显示等待.隐式等待.sleep强制等待 1.显示等待(有条件) 程序提前指定等待条件和等待时间,在查找元素时,判断规定时间内是否 ...
- 【转】-【Python】- 【selenium】 -selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())
-- 学习Python自动化测试的菜鸡,现在是selenium库webdriver的学习时间 [问题] 在获取页面元素的文本的时候,总是获取不到,或者显示为空: [分析] 页面加载不完全: [解决措施 ...
- Selenium中的三种等待方式
在写ui自动化的脚本过程中,如果没有加入等待方式,网络不好的时候通常页面元素没有加载出来,脚本就执行操作定位了,很容易找不到元素,这时候,脚本就会出现异常,还有一种页面是异步加载的,也需要用到等待方式 ...
- 简单阐述下OC中UIImage三种创建方式~~~
一. 直接使用imageNamed进行创建 1 UIImage * image = [UIImage imageNamed:@"1.jpg"]; 简单说一下这种方式的优缺点: 优点 ...
- asp.net Session在web.config中的三种配置方式——详解
这段代码就是设置session在web.config中的存储方式. < sessionState mode="Off|InProc|StateServer|SQLServer" ...
- ios wifi 定位_iOS 中的三种定位方式
1.手机基站定位 原理: 每个手机基站都有一个标识符,iPhone或3G iPad可以搜集周围所有收到信号的基站和它们的标识符,通过联网发送到苹果云端服务器,再由服务器根据这些基站的的位置信息查询并计 ...
- java中map的遍历方法_Java中Map的三种遍历方式
集合中的三种遍历方式,如下代码: import java.util.Collection; import java.util.HashMap; import java.util.Iterator; i ...
最新文章
- 如何在pandas中使用loc、iloc函数进行数据索引
- 几个C++问题提示的莫名其妙,附录解决方法
- 两个变量交换值 和按位异或的理解
- 模式的学习笔记----转摘自把爱好作为自己工作的人
- mysql悲观锁 更新_MySQL学习笔记(四)悲观锁 for update
- QString之arg用法
- canvas图像保存
- CSS 盒子模型(Box model)中的 padding 与 margin
- python 多线程读写文件错误_python多线程老是报错。大神帮忙看看哈?
- Keil 文本对不上格
- 找树根和孩子(信息学奥赛一本通-T1336)
- fmea软件_新版FMEA易错点梳理(一):范围界定和过程流程图-SGS
- JAVA加勒比_【JAVA】synchronized关键字
- NOIP2013 复盘
- 马哥python培训班靠谱吗
- 台式计算机硬盘主要接口,硬盘接口类型,详细教您怎么看硬盘接口的类型
- TypeScript 的类型检查和类型保护
- JustAuth升级到v1.8.1版本,新增AuthState工具类,可自动生成state
- 运算放大器基本参数—压摆率(直观解释)
- sqlite编辑器 linux,SQLite编辑器