我的网页有点冗长,保存按钮位于右上角。当我通过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方法会发生异常
我该如何做到这一点?
答案 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);