代码之家  ›  专栏  ›  技术社区  ›  j0zeft

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

  •  0
  • j0zeft  · 技术社区  · 6 年前

    我研究了许多问题,这些问题暗示了 getLocationInView ,但是 documentation 清楚地说

    在滚动到视图中后,确定元素在屏幕上的位置

    我试着用

    browser
      .url("http://localhost:8080")
      .setValue("@email", "valid4@mail.ca")
      .getLocationInView("#myElement")
      .submit()    //defined elsewhere
      .waitForElementVisible("#error", 3000);
    

    这个片段应该是点击表单底部的一个按钮,就是这样 submit()

    有没有一种方法可以最终滚动到页面的底部,这样我就可以通过测试而不必更改或至少对原始代码进行最小的更改?

    2 回复  |  直到 6 年前
        1
  •  1
  •   coltoneakins    6 年前

    而不是使用 submit elementIdClick .

    这似乎是一种更“真实”的测试方法,因为用户无论如何都会单击表单按钮上的按钮。否则,正如您所知,由于按钮不在视图中,测试将继续失败。

    编辑:

    请查看以下答案: nightwatch.js - scroll until element is visible

        2
  •  0
  •   j0zeft    6 年前

    单击一个按钮需要先滚动到该按钮才能将其显示在屏幕上,但显然 setValue 将自己进行滚动。因此,我没有滚动然后单击,而是这样设置按钮的值:

    browser
    .url("http://localhost:8080")
    .setValue("@email", "valid4@mail.ca")
    .setValue("@submitButton", " ")  //<---this line
    .waitForElementVisible("#error", 3000)
    

    这类似于将焦点设置到元素(按钮),然后点击空格键。