2015-06-09 4 views
3

Я тестирую свое приложение для Иона.Протранслятор прокрутки через executeScript не работает

На одной странице кнопка, которую нужно нажать, находится за пределами окна. Поэтому следующий код:

element.all(by.css('.item.item-complex')).get(9).click(); 

бросает ошибку:

ElementNotVisibleError: element not visible

Таким образом, я пытаюсь прокрутить страницу вниз, чтобы сделать кнопку видимой в странице, а затем попытаться эмулировать щелчок на нем. Я использую следующий код:

browser.executeScript('window.scrollTo(0, 200);').then(function() { 
    element.all(by.css('.item.item-complex')).get(9).click(); 
    expect(browser.getTitle()).toEqual('Vegeta The Prince'); 
}); 

Но прокрутки не происходит с вышеуказанным кодом. Пожалуйста помоги!

Я использую Google Chrome.

ответ

4

Когда я встречаю такие вопросы, как это, я прокрутки в поле зрения:

var elm = element.all(by.css('.item.item-complex')).get(9); 
browser.executeScript("arguments[0].scrollIntoView();", elm.getWebElement()); 

elm.click(); 
+0

как можно сбросить перейдите в исходное положение. Например, если я прокручиваю вниз 3 раза, и если я хочу сбросить прокрутку до вершины сетки, как мне это удастся сделать? – kumarvarun

+0

@VarunMukka обычно зависит от использования, но вы можете прокручивать в виде строки заголовка или первой строки с данными. Посмотрите, имеет ли смысл создавать вопрос, если вам нужна помощь в этом. Благодарю. – alecxe

+0

уверен ... Я планирую задать вопрос – kumarvarun

2

Я решил эту проблему с помощью

window.scrollTo(x, y) 

код:

var elm = element.all(by.css('.item.item-complex')).get(9); 

elm.getLocation() 
    .then(function (location) { 
     return browser.executeScript('window.scrollTo(' + location.x + ', ' + location.y + ');') 
    }) 
    .then(function() { 
     return elm.click(); 
    }) 
})