selenium - webdriver 定位一组元素

2021-04-09 02:26

阅读:685

标签:idt   image   包含   checkbox   selenium   nbsp   driver   默认   src   

首先,自己编写一个html,包含3个复选框,如下图:

技术图片

 HTML代码如下:

html>
head>
meta http-equiv="content-type" content="text/html;charset=utf-8" />
title>checkboxtitle>
head>
    body>
        h3>checkboxh3>
        div class="well">
            form class="form-horizontal">
                div class="control-group">
                    label class="control-label" for="c1">checkbox1label>
                    div class="controls">
                        input type="checkbox" id="c1" />
                    div>
                div>
                div class="control-group">
                    label class="control-label" for="c2">checkbox2label>
                    div class="controls">
                        input type="checkbox" id="c2" />
                    div>
                div>
                div class="control-group">
                    label class="control-label" for="c3">checkbox3label>
                    div class="controls">
                        input type="checkbox" id="c3" />
                    div>
                div>
            form>
        div>
    body>
html>

 

下面,来勾选这3个复选框

与前面定位一组元素的方法类似,只在element后加s,即可定位一组元素,例如:find_elements_by_id()

 1 from selenium import webdriver
 2 import time, os
 3 
 4 driver = webdriver.Chrome()
 5 # path.abspath()方法用于获取当前路径下的文件
 6 file_path = file:/// + os.path.abspath(checkbox.html)   
 7 driver.get(file_path)
 8 
 9 checkboxes = driver.find_elements_by_xpath("//input[@type=‘checkbox‘]")   # 找到复选框
10 
11 for chekbox in checkboxes:   # 遍历每一个复选框,并点击勾选
12     chekbox.click()
13     time.sleep(1)
14 
15 driver.quit()

 也可以按如下方式查找并勾选元素:

inputs = driver.find_elements_by_tag_name(input)

for i in inputs:
    if i.get_attribute(type) == checkbox:
        i.click()
        time.sleep(1)

另外,还可以进行其它操作:

print(len(checkboxes))  # 打印复选框的个数
driver.find_elements_by_xpath("//input[@type=‘checkbox‘]").pop().click()   # 将最后一个复选框的勾选去掉

pop()方法,用于获取列表中的某一个元素,默认为最后一个,并返回该元素的值。若想勾选一组元素中的某一个元素,可按如下方法:

  • pop(0)  第一个
  • pop(1)  第二个
  • ....
  • pop()或pop(-1)  最后一个

 

selenium - webdriver 定位一组元素

标签:idt   image   包含   checkbox   selenium   nbsp   driver   默认   src   

原文地址:https://www.cnblogs.com/xiaochongc/p/12452724.html


评论


亲,登录后才可以留言!