没有合适的资源?快使用搜索试试~ 我知道了~
首页python+webdriver api
资源详情
资源评论
资源推荐
博客园--虫师(http://fnng.cnblogs.com)
1
python webdriver API
博客园--虫师(http://fnng.cnblogs.com)
2
1、第三章 python webdriver API
这一章将详细的讲解基于 python 的 webdriver API,笔者更愿意读者自已去查询 webdriver API 中各
种操作方法的使用,为了保持本书由浅入深的完整性,本章将用相当有篇幅介绍基于 python 语言的
webdriver 对种操作的使用。通过本章的学习,我们掌握 web 页面上各种元素、弹窗的定位与操作,以及
浏览器 cookie 的操作,JavaScript 的调用等问题。
第一节、浏览器的操作
3.1.1、浏览器最大化
在统一的浏览器大小下运行用例,可以比较容易的跟一些基于图像比对的工具进行结合,提升测试的
灵活性及普遍适用性。比如可以跟 sikuli 结合,使用 sikuli 操作 flash。
#coding=utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
print "
浏览器最大化
"
driver.maximize_window() #将浏览器最大化显示
driver.quit()
3.1.2、设置浏览器宽、高
在不同的浏览器大小下访问测试站点,对测试页面截图并保存,然后观察或使用图像比对工具对被测
页面的前端样式进行评测。比如可以将浏览器设置成移动端大小(320x480),然后访问移动站点,对其样
式进行评估;
#coding=utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://m.mail.10086.cn")
#
参数数字为像素点
博客园--虫师(http://fnng.cnblogs.com)
3
print "设置浏览器宽480、高800显示"
driver.set_window_size(480, 800)
driver.quit()
3.1.3、控制浏览器前进、后退
浏览器上有一个后退、前进按钮,对于浏览网页的人是比较方便的;对于 web 自动化测试来说是
一个比较难模拟的操作;webdriver 提供了 back()和 forward()方法,使实现这个操作变得非常简单。
#coding=utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
#访问百度首页
first_url= 'http://www.baidu.com'
print "now access %s" %(first_url)
driver.get(first_url)
#访问新闻页面
second_url='http://news.baidu.com'
print "now access %s" %(second_url)
driver.get(second_url)
#返回(后退)到百度首页
print "back to %s "%(first_url)
driver.back()
#前进到新闻页
博客园--虫师(http://fnng.cnblogs.com)
4
print "forward to %s"%(second_url)
driver.forward()
driver.quit()
为了使脚本的执行过程看得更清晰,在每一步操作上都加了 print 来打印当前的 URL 地址。
运行结果如下:
>>> ================================ RESTART ================================
>>>
now access http://www.baidu.com
now access http://news.baidu.com
back to http://www.baidu.com
forward to http://news.baidu.com
在 python 2 中使用 print 语句进行打印输出,如果是字符信息的话需要对打印的信息加单引号(‘’)
或双引号(“”),它们本质上没有任何区别,不过必须要成对出现才行。打印语句中指定了输出信息的类
型,“%s”表示输出的类型为字符串,“%d”标识输出类型为整型数字。
说实话,这两个功能平时不太常用,所能想到的场景就是几个页面来回跳转,但又不想用 get url 的
情况下。
第二节 简单对象的定位
对象(元素)的定位和操作是自动化测试的核心部分,其中操作又是建立在定位的基础上的,因此元
素定位就显得非常重要。(本书中用到的对象与元素同为一个事物)
一个对象就像是一个人,他会有各种的特征(属性),如比我们可以通过一个人的身份证号、姓名或
者他的住址找到这个人。那么一个元素也有类似的属性,我们可以通过这种唯一区别于其它元素的属性来
定位这个元素。当然,除了要操作元素时需要定位元素外,有时候我们只是为了获得元素的属性(class 属
性,name 属性)、text 或数量也需要定位元素。
webdriver 提供了一系列的元素定位方法,常用的有以下几种
id
name
class name
博客园--虫师(http://fnng.cnblogs.com)
5
tag name
link text
partial link text
xpath
css selector
分别对应 python webdriver 中的方法为:
find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_xpath()
find_element_by_css_selector()
3.2.1 id 和 name 定位
id 和 name 是我们最常用的定位方式,因为大多数元素都有这两个属性,而且在对控件的 id 和 name
命名时一般使其有意义也会取不同的名字。通过这两个属性使我们找一个页面上的属性变得相当容易。
<input id="gs_htif0" class="gsfi" aria-hidden="true" dir="ltr">
<input type="submit" name="btnK" jsaction="sf.chk" value="Google
搜索
">
<input type="submit" name="btnI" jsaction="sf.lck" value="
手气不错
">
通过元素中所带的 id 和 name 属性对元素进行定位:
id=”gs_htif0”
find_element_by_id("gs_htif0")
name=”btnK”
find_element_by_name("btnK")
name=”btnI”
find_element_by_name("btnI")
剩余53页未读,继续阅读
hgp1220
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0