之所以不能用for 循环删除的原因是元素删除后页面会重新渲染;
取出所有的元素,使用while循环依次删除数组里的第一个元素,直到全部删除
from selenium import webdriver
import time
dr = webdriver.Chrome()
dr.get('')
dr.implicitly_wait(10)
dr.find_element_by_css_selector("input[name='username']").send_keys("")
dr.find_element_by_css_selector("input[name='password']").send_keys("")
dr.find_element_by_css_selector("button[type='submit']").click() # 登录
# dr.find_element_by_xpath("//ul[@class='main-nav']//li[3]").click()
# #点击题目 此方法适用于固定的位置,不同角色的栏目位置不一样,因此不推荐使用
dr.find_element_by_link_text("题目").click() #直接使用link_text为题目的元素
time.sleep(1)
dr.find_element_by_partial_link_text("考点管理").click() #点击考点
# partial_link_text和link_text的区别是一个是模糊搜索,一个是精准搜索
#dr.find_element_by_xpath("//div[@class='page']//div//a[1]").click() #第一页数据
dr.implicitly_wait(2)
while True:
delEles = dr.find_elements_by_xpath("//*[@id='del_btn']") #取出页面所有的删除键
if delEles == []: #删除所有的元素或元素为空时,跳出循环
break
delEles[0].click() #点击删除第一个删除按钮
dr.find_element_by_css_selector(
"#layui-layer1 > div.layui-layer-btn.layui-layer-btn- > a.layui-layer-btn0").click() #确定删除
dr.refresh()
time.sleep(1)
dr.implicitly_wait(10)
dr.quit()