Python脚本控制的WebDriver 常用操作 <九> 定位一组对象
2013-12-08 22:45
621 查看
下面将使用WebDriver来模拟操作定位一组对象的操作
定位一组对象一般用于以下场景:
批量操作对象,比如将页面上所有的checkbox都勾上
先获取一组对象,再在这组对象中过滤出需要具体定位的一些对象。比如定位出页面上所有的checkbox,然后选择最后一个
Python脚本:
测试用例场景
从上一节的例子中可以看出,webdriver可以很方便的使用find_element方法来定位某个特定的对象,不过有时候我们却需要定位一组对象,这时候就需要使用find_elements方法。定位一组对象一般用于以下场景:
批量操作对象,比如将页面上所有的checkbox都勾上
先获取一组对象,再在这组对象中过滤出需要具体定位的一些对象。比如定位出页面上所有的checkbox,然后选择最后一个
Python脚本
示例用HTML代码:<html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>Checkbox</title> <script type="text/javascript" async="" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" /> <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script> </head> <body> <h3>checkbox</h3> <div class="well"> <form class="form-horizontal"> <div class="control-group"> <label class="control-label" for="c1">checkbox1</label> <div class="controls"> <input type="checkbox" id="c1" /> </div> </div> <div class="control-group"> <label class="control-label" for="c2">checkbox2</label> <div class="controls"> <input type="checkbox" id="c2" /> </div> </div> <div class="control-group"> <label class="control-label" for="c3">checkbox3</label> <div class="controls"> <input type="checkbox" id="c3" /> </div> </div> <div class="control-group"> <label class="control-label" for="r">radio</label> <div class="controls"> <input type="radio" id="r" /> </div> </div> </form> </div> </body> </html>
Python脚本:
# coding=gbk ''' Created on 2013年12月8日 @author: Administrator ''' from selenium import webdriver from time import sleep import os if 'HTTP_PROXY' in os.environ: del os.environ['HTTP_PROXY'] dr = webdriver.Firefox() file_path = 'file:///'+ os.path.abspath('locator.html') print file_path dr.get(file_path)#打开测试用HTML文件 checkboxes = dr.find_elements_by_css_selector('input[type=checkbox]')#定义页面的所有checkbox for checkbox in checkboxes: #遍历checkbox checkbox.click() sleep(5) print len(dr.find_elements_by_css_selector('input[type=checkbox]')) #打印出checkbox的数量 dr.find_element_by_css_selector('input[type=checkbox]').pop().click() #反勾选checkbox print 'close after 5s ' sleep(5) dr.quit()
相关文章推荐
- Python脚本控制的WebDriver 常用操作 <八> 简单的对象定位
- Python脚本控制的WebDriver 常用操作 <十八> 获取测试对象的css属性
- Python脚本控制的WebDriver 常用操作 <十三> 处理button group层的定位
- Python脚本控制的WebDriver 常用操作 <十七> 获取测试对象的属性及内容
- Python脚本控制的WebDriver 常用操作 <二十四> 定位frame中的元素
- Python脚本控制的WebDriver 常用操作 <二> 关闭浏览器
- Python脚本控制的WebDriver 常用操作 <二十六> 上传文件
- Python脚本控制的WebDriver 常用操作 <三> 浏览器最大化
- Python脚本控制的WebDriver 常用操作 <四> 设置浏览器大小
- Python脚本控制的WebDriver 常用操作 <七>浏览器前进和后退操作
- Python脚本控制的WebDriver 常用操作 <十五> 处理Navigation Bar
- Python脚本控制的WebDriver 常用操作 <二十一> 执行JS
- Python脚本控制的WebDriver 常用操作 <二十二> 处理alert / confirm / prompt
- Python脚本控制的WebDriver 常用操作 <五> 访问链接
- Python脚本控制的WebDriver 常用操作 <二十八> 超时设置和cookie操作
- Python脚本控制的WebDriver 常用操作 <十> 层级定位
- Python脚本控制的WebDriver 常用操作 <二十七> 文件下载
- Python脚本控制的WebDriver 常用操作 <十六> 处理对话框
- Python脚本控制的WebDriver 常用操作 <一> 启动浏览器
- Python脚本控制的WebDriver 常用操作 <二十> 处理表单元素