修复游玩页面板不滚动规则被 workbench 祖先规则压掉

- .platform-tab-panel--game-play 覆盖带上 .platform-desktop-shell--workbench 祖先,压过 overflow: auto
- E2E 游玩页断言补整页与面板的横向溢出测量,避免面板 overflow-x: hidden 静默裁切漏检
- 修正 E2E 探针里重复的 panelOverflowY 键名,拆成 panelOverflowY 与 panelOverflowStyle
- 同步里程碑文档与 pitfalls 同日条目(单类名覆盖被祖先规则压掉、守卫实际为空)
This commit is contained in:
2026-09-30 13:24:55 +08:00
parent e976a69f9f
commit 0619903e3f
4 changed files with 33 additions and 9 deletions
+15 -6
View File
@@ -523,20 +523,29 @@ async function main() {
`startDisabled=${mobileStartDisabled} rotationHint=${rotationHint}`,
);
// 游玩页是固定画布:面板必须是 overflow:hidden 且不溢出,整页也不能出现滚动条。
// 面板自身 `overflow-x: hidden`,横向溢出只会被静默裁掉、不会出滚动条,所以两个方向都要量:
// 只量 scrollHeight 会漏掉「卡片被裁一半」这类横向回归。
const playScroll = await mobilePage.evaluate(() => {
const panel = document.querySelector('.platform-tab-panel');
return {
documentOverflow:
documentOverflowY:
document.documentElement.scrollHeight - window.innerHeight,
panelOverflow: panel ? panel.scrollHeight - panel.clientHeight : 0,
panelOverflowY: panel ? getComputedStyle(panel).overflowY : 'missing',
documentOverflowX:
document.documentElement.scrollWidth - window.innerWidth,
panelOverflowY: panel ? panel.scrollHeight - panel.clientHeight : 0,
panelOverflowX: panel ? panel.scrollWidth - panel.clientWidth : 0,
panelOverflowStyle: panel
? getComputedStyle(panel).overflowY
: 'missing',
};
});
check(
'移动端游玩页不可滚动(面板与整页都不溢出)',
playScroll.documentOverflow <= 1 &&
playScroll.panelOverflow <= 1 &&
playScroll.panelOverflowY === 'hidden',
playScroll.documentOverflowY <= 1 &&
playScroll.documentOverflowX <= 1 &&
playScroll.panelOverflowY <= 1 &&
playScroll.panelOverflowX <= 1 &&
playScroll.panelOverflowStyle === 'hidden',
JSON.stringify(playScroll),
);
await mobile.close();