有时悬停在 Playwright JS 中无法按预期工作

Sometimes hover not working as expected in Playwright JS

提问人:hden 提问时间:11/18/2023 最后编辑:ggorlenhden 更新时间:11/18/2023 访问量:38

问:

我正在使用 Playwright 的 JS 库,并且遇到了悬停功能的一些问题。我得到了一个带有所有调用的定位器列表。然后,我将遍历此列表,并将鼠标悬停在列表中的每个定位器上。悬停时,每个元素都应更改颜色并打开弹出框。我在两个不同的测试中执行此操作,这些测试打开了不同的站点,但最终呈现了相同的 html。这两项测试都使用 chromium 运行。在一次测试中,将鼠标悬停在每个元素上按预期工作(颜色会改变,弹出框变得可见)。在另一个测试中,列表中的第一个元素在悬停时会改变颜色,但不会打开弹出框。如果我手动将鼠标悬停在列表中的第二个元素上(按预期工作),然后遍历所有元素,则悬停在所有元素上按预期工作。

以前有没有人遇到过剧作家?我特别感到困惑的是,悬停在一个测试中按预期工作,但在另一个测试中却没有。这两个测试都在 iframe 中执行此悬停操作,以防万一。

我获取所有定位器的函数:

#getAll = async () =>
        await this.iframe.locator('.qa-hot-buttons-list.p0.m0').getByRole('button').all();

我在工作测试中的函数:

for (const button of buttons) {
    await button.hover();
    const buttonPopover = await myController.getActiveButtonPopover();
    await expect(buttonPopover).toBeVisible();
}

我在破碎测试中的函数:

await buttons[1].hover();
for (const button of buttons) {
    await button.hover();
    const buttonPopover = await myController.getActiveButtonPopover();
    await expect(buttonPopover).toBeVisible();
}
JavaScript 自动测试 Playwright

评论


答: 暂无答案