我正在使用 Nightwatch.js 对我的 Vue.js 应用程序执行 e2e 测试。我的应用程序包含长表单,在执行测试时将按钮“隐藏”在 View 之外。
我研究了许多建议使用 getLocationInView
的问题,但是 documentation清楚地说
Determine an element's location on the screen once it has been scrolled into view
我尝试使用类似的东西
browser
.url("http://localhost:8080")
.setValue("@email", "valid4@mail.ca")
.getLocationInView("#myElement")
.submit() //defined elsewhere
.waitForElementVisible("#error", 3000);
这个片段应该点击表单底部的按钮,这就是 submit()
所做的,但是当我得到错误屏幕截图时发现没有发生任何向下滚动的情况,导致该按钮处于焦点之外,因此未单击!
有没有办法最终滚动到页面底部,这样我就可以通过测试而无需更改或至少对原始代码进行最少的更改?
最佳答案
不要使用提交
,而是使用elementIdClick 。
文档说此方法会将元素滚动到 View 中。这将单击按钮来提交表单,而不是尝试在不与按钮交互的情况下提交表单。
这似乎是一种更“真实”的测试方式,因为用户无论如何都会单击表单按钮上的按钮。否则,如您所知,测试将继续失败,因为按钮不在 View 中。
编辑:
关于javascript - 如何使用 Nightwatch.js 滚动到页面底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52951869/