Playwright 不存在滚动条时如何测试滚动行为?

问题描述 投票:0回答:1

我目前正在使用 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 中实现了滚动功能。

预期结果: 仅当滚动条存在时才滚动。问题:滚动没有滚动条。

javascript testing playwright browser-automation pageobjects
1个回答
0
投票
无论滚动条是否隐藏,

window.scrollTo(0, 40);
都会滚动内容。唯一阻止它滚动的是内容比窗口高度短。隐藏滚动条纯粹是为了美观。

这里有一个例子来证明这一点 https://jsfiddle.net/moefinley/p9j4ab36/17/

© www.soinside.com 2019 - 2024. All rights reserved.