javascript - 如何使用 Nightwatch.js 滚动到页面底部

标签 javascript vue.js nightwatch.js

我正在使用 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 中。

编辑:

也请查看这个答案:nightwatch.js - scroll until element is visible

关于javascript - 如何使用 Nightwatch.js 滚动到页面底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52951869/

相关文章:

javascript - 为什么 parseInt ('dsff66' ,16) 返回 13?

vue.js - 如何禁用基于 Nuxt.js 自动文件的路由生成以支持手动生成的 routes.js 文件?

jquery - Nightwatch.js e2e 测试如何设置 jQuery 在全局范围内可用?

nightwatch.js - nightwatchjs 的浏览器变量是什么

nightwatch.js - 如何在守夜人测试中设置 select2 的值?

javascript - 使用 jQuery.load 加载后如何使用 MathJax 格式化 html?

javascript - 无限 Jasmine 超时

javascript - 如何自动触发fullcalendar的dayClick

typescript - 如何正确使用 Vuex 和 TypeScript?

javascript - 我收到此错误 : Property or method "auto_password" is not defined on the instance but referenced during render