Skip to content

WebDriver 新增方法:waitForFunction 支持自定义 DOM 稳定性判断 #142

@galaxyeye

Description

@galaxyeye

背景

当前 WebDriver 等待页面稳定通常依赖诸如元素出现、消失、属性/文本变化等预设条件。某些场景下,判断页面真正稳定需要自定义更复杂的逻辑,如:

  • 检查某元素高度 N 秒内未发生变化
  • 检查一组节点数量连续保持不变

新需求

为 WebDriver 增加方法:waitForFunction

  • 支持传入自定义 JS 判断函数(Function/Predicate),周期性执行判断
  • 典型用法包括判断 DOM 节点高度、子节点数等指标持续不变
  • 等待超时时间、间隔等参数可配置
  • 判定条件满足时正常返回,否则抛出超时异常

示例伪代码:

// Kotlin 伪代码
waitForFunction(
    predicate = "document.querySelector('#main').offsetHeight === lastHeight",
    timeout = 10_000,
    interval = 200
)

价值

  • 覆盖复杂 DOM 稳定性判定场景
  • 配合高动态页面和异步脚本渲染需求

如有补充需求,请留言。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions