20171013学习笔记Selenium 2 第四章WebDriver API 4.6获得验证消息 4.7设置元素等待
来源:互联网 发布:php 数组变字符串 编辑:程序博客网 时间:2024/05/21 18:32
4.6获得验证消息
在执行用例时,得到的结果需要和预期结果比较,从而判断用户的通过或失败。自动化用例执行完后,还要从页面获取信息来证明用例执行是否成功。
通常用的最多的验证信息分别是:title,url,text。
#coding=utf-8
fromselenium importwebdriver
importtime
url="http://bbs.u.360.cn"
driver=webdriver.Firefox()
driver.get(url)
#打印当前页面的title
title =driver.title
print(title)
#打印当前页面的URL
now_url=driver.current_url
print(now_url)
#执行登陆
driver.find_element_by_link_text("登录").click()
driver.find_element_by_css_selector(".quc-input.quc-input-account").send_keys(username)
driver.find_element_by_css_selector(".quc-input.quc-input-password").send_keys(password)
driver.find_element_by_css_selector('.quc-submit.quc-button.quc-button-sign-in').click()
driver.f
time.sleep(5)
print('登录后')
#再次打印当前页面URL
now_url=driver.current_url
print(now_url)
#获得登录的用户名
user=driver.find_element_by_id('zh_username').text
print(user)
driver.quit()
4.7设置元素等待
由于很多web应用程序使用AJAX技术,在浏览器加载时,页面元素不是同时加载完成的。
所以定位元素时,设置元素等待来改善不稳定性。
webdriver提供了两种等待形式,显示等待和隐式等待。
4.7.1显示等待
显示等待使webdriver在等待某个条件成立时继续执行,否则在达到最大时长时抛出超时异常。
#coding=utf-8
fromselenium importwebdriver
fromselenium.webdriver.common.byimportBy
fromselenium.webdriver.support.uiimportWebDriverWait
fromselenium.webdriver.supportimportexpected_conditionsasEC
url="http://bbs.u.360.cn"
driver=webdriver.Firefox()
driver.get(url)
element=WebDriverWait(driver,5,0.5).until(
EC.presence_of_element_located((By.ID,"key-words"))
)
element.send_keys('selenium')
#driver.quit()
WebDriverWait类是由WibDriver提供的等待方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在。超出设置时间检测不到就抛出异常。具体格式:
WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_excptions=None)
说明: driver:浏览器驱动。 timeout:最长超时时间。poll_frequency:检查的时间间隔,默认为0.5s。 ignored_exceptions:超时后的异常信息,默认情况下抛出NoSuchElementException异常。
WebDriverWait()一般由unit()和unit_not()配合使用
unit(method,message="")调用该方法提供的驱动程序作为一个参数,知道返回值为true。
unit_not(method,message="")调用该方法提供的驱动程序作为一个参数,知道返回值为false。
还可以使用is_displayed()来判断元素是否存在。
#coding=utf-8
fromselenium importwebdriver
fromtime importsleep,ctime
url="http://bbs.u.360.cn"
driver=webdriver.Firefox()
driver.get(url)
print(ctime())
fori inrange(10):
try:
el =driver.find_element_by_css_selector("kw22")
ifel.is_displayed():
break
except:pass
sleep(1)
else:
print("time out")
driver.close()
print(ctime())
4.7.2隐式等待
webdriver提供了implicitly_wait()方法来实现隐式等待,默认设置为0。
#coding=utf-8
fromselenium importwebdriver
fromselenium.common.exceptionsimportNoSuchElementException
fromtime importctime
url="http://bbs.u.360.cn"
driver=webdriver.Firefox()
#设置隐式等待为10秒
driver.implicitly_wait(10)
driver.get(url)
try:
print(ctime())
driver.find_element_by_id("kw23").send_keys("selenium")
exceptNoSuchElementExceptionase:
print(e)
finally:
print(ctime())
driver.quit()
4.7.3sleep休眠方法
sleep()方法有Python的time模块提供。有时我们希望当脚本执行到某一位置时,要做固定的时间休眠,可以使用sleep方法。
阅读全文
0 0
- 20171013学习笔记Selenium 2 第四章WebDriver API 4.6获得验证消息 4.7设置元素等待
- 20170922学习笔记Selenium 2第四章WebDriver API 4.1定位元素
- 20171021学习笔记Selenium 2第四章WebDriver API 4.11警告处理4.14操作Cookie
- 20171012学习笔记Selenium 2 第四章WebDriver API 4.2控制浏览器 4.3简单元素操作4.4鼠标事件4.5键盘事件
- 20171017学习笔记Selenium 2 第四章WebDriver API 4.8定位一组元素4.9多表单切换4.10多窗口切换
- WebDriver设置元素等待
- selenium webdriver学习 -怎么等待页面元素加载完成
- Selenium WebDriver等待页面元素加载完成
- selenium Webdriver学习笔记
- Selenium用户指南 - 第四章 Selenium 2.0和WebDriver[2]
- Selenium用户指南 - 第四章 Selenium 2.0和WebDriver[2]
- Selenium用户指南 - 第四章 Selenium 2.0跟WebDriver[2]
- 【selenium学习笔记】webdriver进行页面元素定位
- 【selenium学习笔记】webdriver对页面元素的操作
- selenium webdriver学习(十一)-怎么等待页面元素加载完成
- selenium webdriver学习(十一)------------如何等待页面元素加载完成
- Selenium-WebDriver学习笔记(一)
- Selenium Webdriver (学习笔记)
- 同余定理
- python下如何在目录下让Python文件去调用另一个Python文件内的函数或类
- Linux‘\’的使用问题
- Learning Python Part II 之 nonlocal语句
- 【S2-052】Struts2远程命令执行漏洞(CVE-2017-9805)
- 20171013学习笔记Selenium 2 第四章WebDriver API 4.6获得验证消息 4.7设置元素等待
- 在win7下用navicat远程连接虚拟机ubuntu上的MySql数据库
- [BZOJ2427]软件安装-tarjan强连通+树形背包
- 快速操纵linux shell命令行
- 深度学习--手写数字识别<二>--交叉熵损失函数(cross entropy cost function)
- 动态内存分配小结
- c语言操作符
- bn层
- hankson的趣味题