定位一组对象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>
View Code

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()
View Code

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()为空默认选择最一个元素。

原文地址:https://www.cnblogs.com/huiguniang/p/7089948.html