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

时间: 2024-08-02 02:34:24

定位一组对象find_elements的相关文章

selenium python (六)定位一组对象

checkbox源码: <html><head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><title>Checkbox</title><script type="text/javascript" async="" src="https://ajax.goog

4. 定位一组对象

如果需要定位一组对象,需要使用以下方法,会返回一个list find_elements_by_name find_elements_by_xpath find_elements_by_link_text find_elements_by_partial_link_text find_elements_by_tag_name find_elements_by_class_name find_elements_by_css_selector element = driver.find_element

selenium python 定位一组对象

为什么定位一组对象? 定位一组对象的思想 在定位一组对象的过程中我们如何实现?以前的都是通过具体的对象定位,那么定位一组我们就需要通过css来定位   在单个定位对象中使用的是find_element_by_id()  但是定位一组对象需要使用find_elements_by_css_selector eg: #定位所有的checkbox对象 checkboxs = dr.find_elements_by_css_selector('input[type=checkbox]') for chec

Selenium2+python自动化11-定位一组元素find_elements

前言 前面的几篇都是讲如何定位一个元素,有时候一个页面上有多个对象需要操作,如果一个个去定位的话,比较繁琐,这时候就可以定位一组对象. webdriver 提供了定位一组元素的方法,跟前面八种定位方式其实一样,只是前面是单数,这里是复数形式:find_elements 本篇拿百度搜索作为案例,从搜索结果中随机选择一条搜索结果,然后点击查看. 一.定位搜索结果 1.在百度搜索框输入关键字"测试部落"后,用firebug查看页面元素,可以看到这些搜索结果有共同的属性. 2.从搜索的结果可以

Selenium2+python自动化11-定位一组元素find_elements【转载】

前言 前面的几篇都是讲如何定位一个元素,有时候一个页面上有多个对象需要操作,如果一个个去定位的话,比较繁琐,这时候就可以定位一组对象. webdriver 提供了定位一组元素的方法,跟前面八种定位方式其实一样,只是前面是单数,这里是复数形式:find_elements 本篇拿百度搜索作为案例,从搜索结果中随机选择一条搜索结果,然后点击查看. 一.定位搜索结果 1.在百度搜索框输入关键字"测试部落"后,用firebug查看页面元素,可以看到这些搜索结果有共同的属性. 2.从搜索的结果可以

python-selenium-定位一组对象

定位一组对象一般用于以下场景: 批量操作对象,比如将页面上所有的checkbox都勾上 先获取一组对象,再在这组对象中过滤出需要具体定位的一些对象.比如定位出页面上所有的checkbox,然后选择最后一个 checkbox.html 1 <html> 2 <head> 3 <meta http-equiv="content-type" content="text/html;charset=utf-8" /> 4 <title

python selenum ---如何定位一组元素

使用findElements方法定位一组对象 定位一组对象一般用于以下场景: · 批量操作对象,比如将页面上所有的checkbox都勾上 · 先获取一组对象,再在这组对象中过滤出需要具体定位的一些对象.比如定位出页面上所有的checkbox,然后选择最后一个 <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <

Selenium 定位一组元素

到目前为止,我们已经知道了怎么去定位一个元素,有时候我们需要获取页面上的多个元素,该怎么办呢?难道还一个一个地去定位,那也太lower了吧. webdriver提供了定位一组元素的方法,跟前面讲的那八种定位方法一样,只不过定位一个元素是单数:find_element,定位一组元素是复数:find_elements 我们以百度搜索结果页面为例. 在百度搜索框输入"selenium",点击"百度一下"按钮,查看页面元素 从搜索结果的页面html代码可以看到,每条搜索结果

java怎样将一组对象传入Oracle存储过程

java怎样将一组对象传入Oracle存储过程.须要注意的是jar包是有要求的,假设使用不当会导致仅仅有数字能传过去,字符串传只是去.假设是Oracle11g则须要选用例如以下的jar包,F:\app\Administrator\product\11.2.0\dbhome_1\jlib\orai18n.jar. D:\program\weblogic\oracle_common\modules\oracle.jdbc_11.2.0\ojdbc6.jar 样例例如以下: CREATE OR REP