博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Selenium 2自动化测试实战14(定位一组元素)
阅读量:4595 次
发布时间:2019-06-09

本文共 2176 字,大约阅读时间需要 7 分钟。

一、定位一组元素

 

WebDriver还提供了与前面所对应的8钟用于定位一组元素的方法。

定位一组元素的方法与定位单个元素的方法类似,唯一的区别是在单词element后面多了一个S表示复数。定位一组元素一般用于以下场景:
(1)批量操作元素,例如勾选页面上所有的复选框。
(2)先获取一组元素,再从这组对象中过滤出需要操作的元素。例如定位出页面上所有的CheckBox,然后选择其中的一个进行操作。

#checkbox.html 
Checkbox

checkbox

这是手动创建的一个html页面,用浏览器打开如下图所示

通过一个实例来操作页面上的这一组复选框

#checkbox.py#coding:utf-8from selenium import webdriverimport os,timedriver=webdriver.Chrome()file_path='file:///'+os.path.abspath('checkbox.html')driver.get(file_path)#选择页面上所有的tag name为input的元素inputs=driver.find_elements_by_tag_name('input')#然后从中过滤出type为checkbox的元素,单击勾选for i in inputs:if i.get_attribute('type') == 'checkbox':i.click()time.sleep(1)driver.quit()

在上面的这个例子中先通过find_elements_by_tag_name()找到一组标签名为input的元素,然后通过for循环进行遍历,在遍历过程中,通过get_attribute()方法获取元素的type属性是否为“checkbox”,如果为“checkbox”,就认为这个元素是一个复选框,对其进行勾选操作。

这里用到了Python的OS模块,path.abspath()方法用于获取当前路径下的文件。

#checkbox.py#coding:utf-8from selenium import webdriverimport os,timedriver=webdriver.Chrome()file_path='file:///'+os.path.abspath('checkbox.html')driver.get(file_path)#通过xpath找到type=checkbox的元素#checkboxes=driver.find_elements_by_xpath("//input[@type='checkbox']")#通过css找到type=checkbox的元素checkboxes=driver.find_elements_by_css_selector('input[type=checkbox]')for checkbox in checkboxes:checkbox.click()time.sleep(1)#打印当前页面上type为checkbox的个数print(len(checkboxes))#把页面上最后1个checkbox的勾给去掉driver.find_elements_by_css_selector('input[type=checkbox]').pop().click()driver.quit()

通过xpath或css来查找一组元素是,省去了判断步骤,因为定位方法已经做了判断,只需循环对这一组元素进行勾选即可。

上例中,用到了两个方法,
(1)len()方法可以用来计算元素的个数,通过print()打印出计算的结果。
(2)pop()方法用于获取列表中的一个元素(默认为最后一个元素),并且返回该元素的值。因为前面的循环已经将所有复选框都勾选上了,再对这一组元素执行pop().click(),其实是对最后一个元素取消勾选。
    pop()或pop(-1): 默认获取一组元素中的最后一个
    pop(0):获取一组元素中的第一个
    pop(1):获取一组元素中的第二个
    ……..
  这样就可以操作一组元素中的任意一个元素了,只需数一数需操作的元素是这一组中的第几个。

 

转载于:https://www.cnblogs.com/Rita-LJ/p/11572754.html

你可能感兴趣的文章
JMeter基础知识
查看>>
组合数据类型练习,英文词频统计实例上
查看>>
python入门知识
查看>>
为什么我在博客园开始写博客
查看>>
ES6数组的扩展
查看>>
xshell不能输入中文,显示为??
查看>>
[NGUI]NGUI图集Atlas制作
查看>>
vue的坑
查看>>
【原创】大数据基础之Airflow(2)生产环境部署airflow研究
查看>>
传说中的滑雪,巨丑勿拍(poj1088/tyvj1004)
查看>>
webpack——图片的路径与打包
查看>>
.net4.0注册到IIS ,重新注册IIS ,iis注册
查看>>
常见Jquery问题
查看>>
jsp统计页面访问量和刷访问量的简单使用
查看>>
调试的新花招,利用firebug动态加载js库文件
查看>>
Unity3d的序列帧动画
查看>>
获取ScrollView的onScrollListener
查看>>
约数的个数
查看>>
Visual Studio 2008 具有一些新的报表功能和改进之处
查看>>
python环境错误
查看>>