Skip to content

内置浏览器(IAB)Playwright 点击通道整页挂起:定位正常、元素可见,click()(含 force:true)无回执超时;CUA 坐标点击正常 #951

Description

@wezhouji1-art

内置浏览器(IAB)Playwright 点击通道整页挂起:定位正常、元素可见,click()(含 force:true)无回执超时;CUA 坐标点击正常

环境

症状

同一页面上,Playwright 通道的定位与查询全部正常,但点击指令全部挂起(等待超时),连 force: true 也一样;同一坐标走 CUA(坐标)通道立即成功。

复现步骤

  1. 打开上述页面(iframe 嵌入版或应用全屏版均可复现)
  2. getByRole("button", { name: "Select Month" }) → count()=1、isVisible()=true
  3. locator("#select-month .chosen-value") → count()=1
  4. 页面侧 elementFromPoint(元素中心) → 返回元素自身(无遮挡、在视口内)
  5. locator.click() → 等满超时:Timeout waiting for locator … waiting on click for selector
  6. locator.click({ force: true }) → 同样超时(force 已跳过 visible/stable/enabled/receives-events 全部检查)
  7. 对照:tab.cua.click({ x: 505, y: 345 }) → 立即生效(aria-expanded false→true),后续月份下拉、日期下拉、图片详情全部用坐标点击完成,零失败

前奏:iframe 嵌入版上 frameLocator(...) 点击报 enter-frame 超时;改开应用全屏版(无 iframe)后问题依旧——与 iframe 无关。

定位链(四步排除)

  1. 两种定位器(getByRole / CSS 选择器)count 均=1、isVisible=true → 不是选择器问题
  2. 命中检测:元素中心 (505,345),elementFromPoint 返回元素自身 → 不是遮挡/视口外问题
  3. click() 超时后,force:true(跳过全部可操作性检查)同样超时 → 不是可操作性检查不通过,是点击指令通道自身挂起
  4. CUA 坐标点击同坐标立即生效 → 页面本身可点,缺陷在客户端通道

定性

  • 标准 Playwright 对 div[role=button] 本可正常点击(角色引擎认 role 属性,与标签名无关);
  • force 模式在标准 Playwright 实现里,对已存在且已解析的元素不可能超时(跳过检查后派发是同步动作)——挂起说明点击指令在 IAB 桥接层排队/等待某个永不到来的回执;
  • 更严重的是挂起而非快速失败:报错文本只有 "waiting on click for selector",没有原因,把排查方向误导到定位器上(实际定位三查全过)。

期望行为

  1. click() 要么成功、要么快速失败并给出可诊断原因(如 hit-target 检测失败详情、稳定性检查失败详情);
  2. force: true(跳过全部检查)不应挂起超时。

绕行方案(已验证,全程零失败)

  • 点击一律改 tab.cua.click({x,y})(坐标从 getBoundingClientRect 中心取,配截图确认);
  • 同页混用:查询/快照/evaluate 走 Playwright、点击走 CUA。

补充说明

  • 页面本身无问题:真人浏览器操作正常;该缺陷只在 ZCode IAB 的 Playwright 点击通道出现。
  • 触发条件与"非标准控件(React div[role=button])+持续动画背景"的页面相关;具体触发点(动画干扰稳定性检查?桥接层回执等待逻辑?)未能进一步定位,供官方复现参考。

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions