当前位置: 首页 > backend >正文

Selenium核心技巧:元素定位与等待策略

Selenium核心技巧

  1. WebDriver:浏览器(交互)  
  2. find_element:元素定位
  3. WebElement元素(交互)     

重点内容:

  1. 元素定位
  2. 等待
  3. 元素交互
    1. 文件上传(3种)
    2. 滚动条处理
    3. JS代码(强制操作)

1、元素定位

  • 方法
    • find_element:如果成功返回元素,如果失败抛出异常。
    • find_elements:如果成功返回list,如果失败返回list(空)
  • 策略
    • 基于元素的属性进行定位
      ID = "id"
      NAME = "name" 
      TAG_NAME = "tag name" 
      CLASS_NAME = "class name"基于链接文件进行定位
      LINK_TEXT = "link text"
      PARTIAL_LINK_TEXT = "partial link text"可以定位任意元素
      XPATH = "xpath"
      CSS_SELECTOR = "css selector"

2、等待

  • 隐式等待
    • driver = webdriver.Edge(options=options, service=service)
      driver.implicitly_wait(20)     #隐式等待(放在浏览器启动之后,等待浏览器加载完成)
  • 显示等待
    • #显示等待(一般放在需要等待的上一个执行代码段)
      # WebDriverWait(driver,timeout=10).until(lambda x: driver.find_element(By.XPATH, value='//*[@id="s-top-left"]/a[1]'))wait=WebDriverWait(driver, 10)
      wait.until(lambda d: 1==1)   #等待条件#el=driver.find_element(by='xpath', value='//*[@id="s-top-left"]/a[1]')
      el=driver.find_element(By.XPATH, value='//*[@id="s-top-left"]/a[1]')
  • 流畅等待(更高级的等待)
  • 强制等待(休眠)
    • #强制等待
      import time
      time.sleep(3)
http://www.xdnf.cn/news/19715.html

相关文章:

  • ArkUI核心功能组件使用
  • 【线段树】3525. 求出数组的 X 值 II|2645
  • Spring 事务原理解析:AOP 的一次完美落地
  • 深度学习——基于卷积神经网络实现食物图像分类【4】(使用最优模型)
  • 广度优先搜索(BFS, Breadth-First Search)
  • 数字化转型的六大天问:你的项目为何失败
  • 数据开发工作了一年,准备跳槽,回顾一些面试常见问题,大数据面试题汇总与答案分享
  • 【3D打印】3D打印机首次使用心得
  • 2025最新“Java 面试八股文 + 各大厂的面试真题”限时开源
  • 人工智能助力流感疫苗选择:MIT 团队推出 VaxSeer 系统
  • Understanding the Flap T in American English
  • 开源企业级快速开发平台(JeecgBoot)
  • Python闭包机制:原理、应用与安全防护
  • 【Doris入门】Doris数据表模型:聚合模型(Aggregate Key Model)详解
  • java-设计模式-4-创建型模式-工厂
  • 【52页PPT】服务业数字化转型如何做(附下载方式)
  • Ubuntu 用户和用户组
  • X86、X64 与 ARM:架构的剖析与比较
  • webpack性能优化指南
  • MacOS - 记录MacOS发烫的好几天 - 幕后黑手竟然是
  • 神经网络|(十八)概率论基础知识-伽马函数溯源-阶乘的积分表达式
  • k8s常用命令
  • 对矩阵行化简操作几何含义的理解
  • HDI是什么?与普通线路板有何区别?优势在哪?
  • 嵌入式git分支管理策略
  • Java基础第9天总结(可变参数、Collections、斗地主)
  • 魔域服务器多少钱一个月?魔域服务器配置要求及推荐
  • Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十四天
  • 鸿蒙Next开发指南:XComponent与Progress组件的深度解析与实践
  • 在 PySpark 中解锁窗口函数的力量,实现高级数据转换