我目前正在使用 Playwright 对页面对象进行自动化测试,并且我有一个函数 rollDownAndUpOnboarding ,旨在在网页上向下滚动然后向上滚动。但是,我注意到即使页面上不存在滚动条,此功能也会向下滚动。
这是我的功能供参考:
async scrollDownAndUpOnboarding() {
const initialScrollY = await this.page.evaluate(() => {
return window.scrollY;
});
await this.page.evaluate(() => {
window.scrollTo(15, document.body.scrollHeight);
});
await this.page.waitForTimeout(1000);
const isVisibleAfterScrollDown = await this.membershipLabel.isVisible();
if (isVisibleAfterScrollDown) {
console.log('Membership label is visible after scrolling down.');
} else {
console.log('Membership label is not visible after scrolling down.');
}
await this.page.evaluate(() => {
window.scrollTo(0, 40);
});
await this.page.waitForTimeout(1000);
}
我在函数中添加了断言,但即使页面上没有滚动条,它们也会通过。我的目标是评估当没有滚动条时滚动是否实际发生。
我在页面对象中调用此函数,然后在我的测试脚本中使用它,但它似乎没有检测到滚动条的缺失。我怎样才能修改我的代码或方法来有效地测试这个场景?
任何见解或建议将不胜感激。
环境详情:
Playwright 版本:1.37,带 JavaScript 操作系统:Windows 11
我尝试过的: 在 Playwright 中实现了滚动功能。
预期结果: 仅当滚动条存在时才滚动。问题:滚动没有滚动条。
window.scrollTo(0, 40);
都会滚动内容。唯一阻止它滚动的是内容比窗口高度短。隐藏滚动条纯粹是为了美观。
这里有一个例子来证明这一点 https://jsfiddle.net/moefinley/p9j4ab36/17/