一、定位一组元素的方法
driver.find_elements_by_name("")
driver.find_elements_by_id("")
driver.find_elements_by_tag_name("")
driver.find_elements_by_link_text("")
driver.find_elements_by_partial_link_text("")
driver.find_elements_by_class_name("")
driver.find_elements_by_xpath("")
driver.find_elements_by_css_selector("")
二、应用场景
1、批量操作元素,例如勾选页面上的复选框
2、先获取一组元素,再从这组元素中过滤出要操作的元素,例如定位出页面上所有的checkbox,选择其中的一个进行操作
三、代码实现上面的应用场景
<!--checkbox.html-->
<!DOCTYPE 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>
<h3>checkbox</h3>
<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>
from selenium import webdriver
import time
import os
driver = webdriver.Firefox()
file_path = 'file:///' + os.path.abspath("checkbox.html")
driver.get(file_path)
#使用css或者xpath定位,不需要使用if判断
#inputs_css = driver.find_elements_by_css_selector("input[type=checkbox]")
#for i in inputs_css :
# i.click()
#time.sleep(5)
#使用tag_name定位
inputs_tag_name = driver.find_elements_by_tag_name("input")
for i in inputs_tag_name :
if i.get_attribute("type") == "checkbox":
i.click()
time.sleep(5)
inputs_tag_name.pop().click()
time.sleep(5)
driver.quit()