webdriver之定位一組元素
阿新 • • 發佈:2020-12-27
一、定位一組元素的方法
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()