如何使用Protractor.NET?

时间:2015-08-13 09:27:20

标签: c# selenium-webdriver protractor-net

我的网页有点冗长,保存按钮位于右上角。当我通过Protractor.NET输入数据时,网页向下滚动,隐藏 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方法会发生异常

我该如何做到这一点?

3 个答案:

答案 0 :(得分:2)

最后得到了在Protractor.NET中滚动到顶部的解决方案

已经提到了link,并且能够解决我的问题。

以下代码对我有用。

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

答案 1 :(得分:0)

为什么要让它变得复杂?

如果要滚动到元素,可以使用以下简单方法:

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

      return webElement;
}

答案 2 :(得分:-1)

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

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