zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    各种排序算法的时间复杂度和空间复杂度
    fork/join框架
    全文检索之solr学习
    【设计模式最终总结】概述、分类、原则
    ASP.NET MVC5+EF6+EasyUI 后台管理系统(75)-微信公众平台开发-用户管理
    下拉列表自己封装的
    下拉列表
    一个原生的JavaScript拖动方法
    JavaScript的jsonp
    angular2 的依赖注入
  • 原文地址:https://www.cnblogs.com/x00479/p/14243333.html
Copyright © 2011-2022 走看看