白天的影子

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

之所以不能用 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()

 

posted on 2021-01-06 20:34  白天的影子  阅读(1129)  评论(0编辑  收藏  举报