0

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

我在 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;
}

所以异常发生在 Scroller 方法中,同时将类型转换NgWebDriverIJavaScriptExecutor

我怎样才能做到这一点?

4

3 回答 3

2

终于得到了在 Protractor.NET 中向上滚动到顶部的解决方案

已经提到了链接并能够解决我的问题。

下面的代码对我有用。

IWebDriver driver = MyWebDriver.WrappedDriver;
IJavaScriptExecutor jse = (IJavaScriptExecutor)driver;
jse.ExecuteScript("scroll(0, -250);");
于 2015-08-24T06:25:06.507 回答
0

为什么要让它变得复杂?

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

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

      return webElement;
}
于 2015-08-13T12:12:10.967 回答
-1

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

 IJavaScriptExecutor jse = (IJavaScriptExecutor)NgDriver;
 jse.ExecuteScript("arguments[0].scrollIntoView()", webElement);
于 2018-02-16T08:32:22.963 回答