1. 程式人生 > 其它 >webdriver之定位一組元素

webdriver之定位一組元素

一、定位一組元素的方法

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()