定位一组对象find_elements
1、脚本准备
1)将以下代码保存复制到记事本中,并保存成 checkbox.html 文件。 (注意,这个页面需要和我们的自动
化脚本放在同一个目录下,否则下面的脚本将指定 checkbox.html 的所在目录)
1 <html> 2 <head> 3 <meta http-equiv="content-type" content="text/html;charset=utf-8" /> 4 <title>Checkbox</title> 5 <script type="text/javascript" async=" 6 " src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 7 <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" 8 rel="stylesheet" /> 9 <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script> 10 </head> 11 <body> 12 <h3>checkbox</h3> 13 <div class="well"> 14 <form class="form-horizontal"> 15 <div class="control-group"> 16 <label class="control-label" for="c1">checkbox1</label> 17 <div class="controls"> 18 <input type="checkbox" id="c1" /> 19 </div> 20 </div> 21 <div class="control-group"> 22 <label class="control-label" for="c2">checkbox2</label> 23 <div class="controls"> 24 <input type="checkbox" id="c2" /> 25 </div> 26 </div> 27 <div class="control-group"> 28 <label class="control-label" for="c3">checkbox3</label> 29 <div class="controls"> 30 <input type="checkbox" id="c3" /> 31 </div> 32 </div> 33 </form> 34 </div> 35 </body> 36 </html>
2)通过浏览器打开 checkbox.html,将看到以下页面:
2、代码实现
通过脚本来单击勾选三个复选框。
1 #coding=utf-8 2 from selenium import webdriver 3 import time 4 import os 5 6 driver = webdriver.Firefox() 7 #打开本地目录文件 8 file_path = 'file:///'+os.path.abspath('checkbox.html') 9 driver.get(file_path) 10 time.sleep(3) 11 12 #选择页面上所有tag name为input的元素并打印元素个数 13 inputs = driver.find_elements_by_tag_name("input") 14 print(len(inputs)) 15 16 #从中过滤出type为checkbox的元素,依次单击勾选 17 for input in inputs: 18 if input.get_attribute('type')=='checkbox': 19 input.click() 20 time.sleep(1) 21 22 #把页面最后一个checkbox取消勾选 23 inputs.pop().click() 24 time.sleep(3) 25 26 driver.quit()
3、方法解析
1)import os
os 模块为 python 语言标准库中的 os 模块包含普遍的操作系统功能。主要用于操作本地目录文件。
2)os.path.abspath()
path.abspath()方法用于获取当前路径下的文件。
3)for 循环
对 inputs 获取的一组元素进行循环,在 python 语言中循环变量(input)可以不用事先声明直接使用。
4)find_elements_by_xx(‘xx’)
find_elements 用于获取一组元素
5) len()
len 为 python 语言中的方法,用于返回一个对象的长度(或个数) 。
6)pop()
pop 也为 python 语言中提供的方法,用于删除指定们位置的元素,pop()为空默认选择最一个元素。