2015-08-13 2 views
0

Моя веб-страница немного длинная, а кнопка SAVE находится в верхнем правом углу. Когда я ввожу данные через Protractor.NET, веб-страница прокручивается вниз, которая скрывает кнопку SAVE, тем самым бросая элемент , не может быть нажата в точке. Теперь, чтобы сохранить веб-страницу, мне нужно прокрутить вверх, а затем найти кнопку SAVE и нажать на нее.Как прокрутить страницу, используя Protractor.NET?

У меня есть пример в транспортир, который использует window.scrollTo(0,0), но как реализовать то же самое в Protractor.NET

EDIT: Включенный код

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 тип

Как это сделать?

ответ

2

Наконец получил решение прокрутки до вершины в Protractor.NET

Если бы передал link и был способный решить мою проблему.

Этот код работал для меня.

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

Uhuu! ! Спасибо приятель! – rochasdv

0

Почему вы хотите усложнить ситуацию?

Если вы хотите, чтобы перейти к элементу, вы можете использовать этот простой метод:

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

     return webElement; 
} 
+0

Я получаю исключение 'Невозможно привести объект типа«Protractor.NgWebDriver»к типу«OpenQA.Selenium.IJavaScriptExecutor'' – Karthik

+0

Я думаю, вы получите эту ошибку, когда вы делаете что-то вроде этого: myProtactorElement = ScrollToElement (myProtactorElement) .Нажмите(); Если это так, просто измените тип возвращаемой функции. –

+0

Реальная проблема заключается в том, что NgWebDriver не реализует интерфейс 'OpenQA.Selenium.IJavaScriptExecutor'. Таким образом, он выдает ошибку при ее использовании. Дайте мне знать, если вам нужен пример кода – Karthik

-1

Этот код помог мне достичь того же.

IJavaScriptExecutor jse = (IJavaScriptExecutor)NgDriver; 
jse.ExecuteScript("arguments[0].scrollIntoView()", webElement); 
Смежные вопросы