Selenium 循環刪除頁面元素


之所以不能用 for 循環刪除的原因是元素刪除后頁面會重新渲染。
取出所有的元素,使用while循環依次刪除數組里的第一個元素,直到全部刪除。

 1 from selenium import webdriver
 2 import time
 3  
 4 dr = webdriver.Chrome()
 5 dr.get('')
 6 dr.implicitly_wait(10)
 7  
 8 dr.find_element_by_css_selector("input[name='username']").send_keys("")
 9 dr.find_element_by_css_selector("input[name='password']").send_keys("")
10  
11 dr.find_element_by_css_selector("button[type='submit']").click() # 登錄
12  
13 # dr.find_element_by_xpath("//ul[@class='main-nav']//li[3]").click()
14 # #點擊題目 此方法適用於固定的位置,不同角色的欄目位置不一樣,因此不推薦使用
15  
16 dr.find_element_by_link_text("題目").click()  #直接使用link_text為題目的元素
17  
18 time.sleep(1)
19  
20 dr.find_element_by_partial_link_text("考點管理").click()  #點擊考點
21 # partial_link_text和link_text的區別是一個是模糊搜索,一個是精准搜索
22  
23 #dr.find_element_by_xpath("//div[@class='page']//div//a[1]").click() #第一頁數據
24  
25 dr.implicitly_wait(2)
26 while True:
27     delEles = dr.find_elements_by_xpath("//*[@id='del_btn']")  #取出頁面所有的刪除鍵
28  
29     if delEles == []:       #刪除所有的元素或元素為空時,跳出循環
30         break
31  
32     delEles[0].click()  #點擊刪除第一個刪除按鈕
33     dr.find_element_by_css_selector(
34         "#layui-layer1 > div.layui-layer-btn.layui-layer-btn- > a.layui-layer-btn0").click()  #確定刪除
35     dr.refresh()
36     time.sleep(1)
37  
38 dr.implicitly_wait(10)
39  
40 dr.quit()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM