selenium中'WebElement' object is not iterable报错问题

来源:互联网 发布:表白app源码 编辑:程序博客网 时间:2024/06/05 02:41

checkbox.html源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
    
        -equiv="content-type"content="text/html;charset=utf-8"/>
        /title>
        type="text/javascript"async=""src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"><</CODE>/script>
        ="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css"rel="stylesheet"/>
        ="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"><</CODE>/script>
    <</CODE>/head>
    
        

checkbox<</CODE>/h3>

        

class="well">

            

class="form-horizontal">
                
class="control-group">
                    class="control-label"for="c1">checkbox1<</CODE>/label>
                    
class="controls">
                        <</CODE>inputtype="checkbox"id="c1"/>
                    <</CODE>/div>
                <</CODE>/div>
                
class="control-group">
                    class="control-label"for="c2">checkbox2<</CODE>/label>
                    
class="controls">
                        <</CODE>inputtype="checkbox"id="c2"/>
                    <</CODE>/div>
                <</CODE>/div>
                
class="control-group">
                    class="control-label"for="c3">checkbox3<</CODE>/label>
                    
class="controls">
                        <</CODE>inputtype="checkbox"id="c3"/>
                    <</CODE>/div>
                <</CODE>/div>                     
                
class="control-group">
                    class="control-label"for="r">radio<</CODE>/label>
                    
class="controls">
                        <</CODE>inputtype="radio"id="r"/>
                    <</CODE>/div>
                <</CODE>/div>                     
            <</CODE>/form>
        <</CODE>/div>
    <</CODE>/body>
<</CODE>/html>

  Python代码:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
21
#coding=utf-8
 
from selenium importwebdriver
import time
import os
 
dr =webdriver.Firefox()
file_path = 'file:///' +os.path.abspath('checkbox.html')
dr.get(file_path)
 
# 选择所有的checkbox并全部勾上
 
checkboxes =dr.find_element_by_css_selector('input[type=checkbox]')
for check incheckboxes:
    check.click()
time.sleep(1)
 
# 打印当前页面上有多少个checkbox
 
 
dr.quit()

  报错内容:TypeError: 'WebElement' object isnot iterable

解决办法:

checkboxes = dr.find_element_by_css_selector('input[type=checkbox]')
改为:
checkboxes = dr.find_elements_by_css_selector('input[type=checkbox]')
或者:input1 = dr.find_elements_by_tag_name('input')
注意:因为是定位一组元素,而不是单个元素,在书写时要特别注意;
阅读全文
0 0
原创粉丝点击