zoukankan      html  css  js  c++  java
  • 定位一组对象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()为空默认选择最一个元素。

  • 相关阅读:
    项目中遇到的问题:前台 disabled 与 后台disabled
    差距
    那些零碎的感悟,那些成长的事【壹】
    假期数据结构学习总结
    烟大 2242: 回文(栈和队列)
    烟大 2241: 相同序列(栈和队列)
    烟大 2239: 十进制与八进制的转换(栈和队列)
    烟大 2238: 括号匹配(栈和队列)
    hdu 1018:Big Number(水题)
    hdu 2050:折线分割平面(水题,递归)
  • 原文地址:https://www.cnblogs.com/huiguniang/p/7089948.html
Copyright © 2011-2022 走看看