如何使用 Protractor.NET 向上滚动?

How to scroll up using Protractor.NET?

我的网页有点冗长,SAVE 按钮位于右上角。当我通过 Protractor.NET 输入数据时,网页向下滚动隐藏了 SAVE 按钮,从而抛出 Element is not clickable at a point 错误。现在为了保存网页,我需要向上滚动然后找到 SAVE 按钮并单击它。

我在 Protractor 中有一个使用 window.scrollTo(0,0) 的示例,但我如何在 Protractor.NET

中实现相同的示例

编辑:包含代码

public void Test()
{
     var saveBtn = NgWebDriver
                 .FindElement(By.ClassName("btnSave"))
                 .FindElement(By.ClassName("Save"));
    var btnSv = Scroller(saveBtn);
    btnSv.Click();
}


public IWebElement Scroller(IWebElement element)
{
    ((IJavaScriptExecutor)NgWebDriver).ExecuteScript("arguments[0].scrollIntoView();", element);
    return element;
}

因此在将 NgWebDriver 转换为 IJavaScriptExecutor 类型时,Scroller 方法中出现异常

我怎样才能做到这一点?

为什么要把它弄复杂?

如果你想滚动到一个元素,你可以使用这个简单的方法:

public IWebElement ScrollToElement(IWebElement webElement)
{
      ((IJavaScriptExecutor)Driver).ExecuteScript("arguments[0].scrollIntoView();", webElement);

      return webElement;
}

终于在 Protractor.NET

中找到了向上滚动到顶部的解决方案

参考了 link 并且能够解决我的问题。

下面的代码对我有用。

IWebDriver driver = MyWebDriver.WrappedDriver;
IJavaScriptExecutor jse = (IJavaScriptExecutor)driver;
jse.ExecuteScript("scroll(0, -250);");

下面的代码帮助我实现了同样的目的。

 IJavaScriptExecutor jse = (IJavaScriptExecutor)NgDriver;
 jse.ExecuteScript("arguments[0].scrollIntoView()", webElement);