2016-05-31 3 views
0

Пока я использую транспортир с firefox (ubuntu) 46 все мои тесты зеленые, но когда я использую хром, некоторые из них терпят неудачу, потому что команда browser.executeScript('window.scrollTo(0,10000);'); не работает должным образом. Я пытался использовать:Тест-драйв работает на Firefox, но не работает на Chrome

var elm = element(by.sth) browser.executeScript("arguments[0].scrollIntoView();", elm.getWebElement());

или

scrollIntoView : function(){ arguments[0].scrollIntoView(); }

, но они не работают, а также.

И еще мой второй вопрос: когда я пытаюсь запустить такой же тест на Windows, все они терпят неудачу из-за недостающих локаторов и т. Д. Это из-за различий в архитектуре браузеров или моих тестов не написано хорошо.

ответ

1

Я разрешил проблему. Проблема была с обещаниями, мы должны рассматривать browser.executeScript('window.scroll(0,600);') как обещание, поэтому, если тест слишком быстрый, он терпит неудачу. Решения использует:

browser.executeScript('window.scroll(0,600);').then(function(){ 
    return this; 
}); 

Это также устранить проблему с отсутствующими локаторами, becouse есть время для загрузки на окнах.

0

Вы уверены, что вам нужно использовать scrollIntoView? У меня есть прокрутки в приложении, которое я тестирую, но Protractor автоматически прокручивается по мере необходимости.

В противном случае было бы полезно получить более подробную информацию о сбое. Какое сообщение об ошибке вы получаете? В каком контексте вы называете свою функцию? Экстракт вашего кода может помочь.

+0

Не обращайте внимания на мою первую проблему с '' 'var sgpt = require ('sg-transractor-tools');' '' '' 'sgpt.scroll.scrollTo (element); '' ' , но все же возникла проблема, чтобы запустить этот тест на windows :) – Hikaryu

Смежные вопросы