首页 > 解决方案 > 如何在 nightwatch.js 中执行“向上滚动”

问题描述

我正在尝试“向上​​滚动”以执行 e2e 测试。但是任何可用的 API 都会出现以下错误:

运行 .clickElement() 协议操作时出错:发生未知错误 - 元素点击被拦截:

经过进一步的故障排除后,我发现如果页面的条目数较少,它工作正常。但如果它需要“向上滚动”然后单击按钮,它就会失败。

我已经尝试执行该操作的事情如下:

  1. 尝试使用 moveToElement() & then click() & mouseButtonClick() 但收到相同的错误。this.waitForElementVisible("@selector")this.api.moveToElement("@selector",10,10).mouseButtonClick(0)

2.尝试使用单独的 JavaScript 执行器,但其获取元素不可点击。代码片段:this.api.execute(function (selector) {document.querySelector(selector).click();}, ['selector'])

请让我知道是否有任何特定的方法/javascript执行器方法可以在守夜人中执行滚动

标签: javascripttypescriptnightwatch.js

解决方案


我使用executeAPI 中的方法,然后使用 Window 对象和scrollTo方法,如下所示:

browser.execute(function(data) {
            window.scrollTo(0, 0);
        });

您可以使用getLocationAPI 中的方法获取特定元素的 x,y 坐标,这些坐标从该方法作为 JSON 对象返回,或者您可以对坐标进行硬编码。这是 API 链接:getLocation 方法文档


推荐阅读