文件名:checkbox.html
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
<title>Checkbox</title>
<link href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.js">
</script>
</head>
<body>
<h4>Checkbox</h4>
<div class="well">
<form class="form-horizontal">
<div class="control-group">
<label class="control-label" for='c1'>checkbox1</label>
<div class="controls">
<input type="checkbox" id="c1"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for='c2'>checkbox2</label>
<div class="controls">
<input type="checkbox" id="c2"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for='c3'>checkbox3</label>
<div class="controls">
<input type="checkbox" id="c3"/>
</div>
</div>
</form>
</div>
</body>
</html>
文件名:test.py
from selenium import webdriver
import os,time
driver = webdriver.Chrome()
file_path='file:///'+os.path.abspath('checkbox.html')
driver.get(file_path)
#代码片段一:
inputs = driver.find_elements_by_tag_name('input')
for i in inputs:
if i.get_attribute('type')=='checkbox':
i.click()
time.sleep(1)
#代码片段二:
#通过XPath找到type=checkbox的元素
checkboxes=driver.find_elements_by_xpath("//input[@type='checkbox']")
#通过CSS找到type=chekcbox的元素
checkboxes=driver.find_elements_by_css_selector("input[type=checkbox]")
for checkbox in checkboxes:
checkbox.click()
time.sleep(1)
#代码片段三:
inputs = driver.find_elements_by_tag_name('input')
for i in inputs:
if i.get_attribute('id')=='c1':
i.click()
time.sleep(3)
driver.find_elements_by_css_selector("input[type=checkbox]").pop.click
pop(-1)、pop()默认获取一组元素中的最后一个
pop(0)获取一组元素中的第一个
pop(1)获取一组元素中的第二个
driver.quit()
上述test.py代码中,
代码片段一:通过find_elements_by_tag_name('input')获取input,获取到的input元素包含type和id属性,因此不唯一,通过get_attribute方法指定对应的属性找到唯一元素,checkbox,从而确定了元素的定位
代码片二:通过find_elements_by_xpath获取到一系列的checkbox元素,属于同类别元素
通过find_elements_by_css_selector获取到一系列的checkbox元素,属于同类别元素
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。