javascript - 如何在 nightwatch.js 中执行“向上滚动”
问题描述
我正在尝试“向上滚动”以执行 e2e 测试。但是任何可用的 API 都会出现以下错误:
运行 .clickElement() 协议操作时出错:发生未知错误 - 元素点击被拦截:
经过进一步的故障排除后,我发现如果页面的条目数较少,它工作正常。但如果它需要“向上滚动”然后单击按钮,它就会失败。
我已经尝试执行该操作的事情如下:
- 尝试使用 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执行器方法可以在守夜人中执行滚动
解决方案
我使用execute
API 中的方法,然后使用 Window 对象和scrollTo
方法,如下所示:
browser.execute(function(data) {
window.scrollTo(0, 0);
});
您可以使用getLocation
API 中的方法获取特定元素的 x,y 坐标,这些坐标从该方法作为 JSON 对象返回,或者您可以对坐标进行硬编码。这是 API 链接:getLocation 方法文档
推荐阅读
- python - 如何在 pytorch 上拥有更多可用内存?
- azure - Azure WAF 自定义规则中的最大条件数是多少?
- python - 如何根据另一个数组的行分配np数组的行?
- azure - 具有事务范围的 Azure 服务总线
- r - officedown 只读输出
- r - 根据行号创建包含文本的新数据 R studio
- python - 在使用 joblib 的 sklearn 网格搜索的上下文中将项目保存在 defaultdict 中
- c++ - c++:POD 类型可以包含 const 非指针成员吗?
- reactjs - 当 cntrl+单击在我们网站上的 chrome 中打开新标签时,某些查询似乎不想运行
- firebase - '未来的实例
' 而不是字符串数据颤动/火力