У меня есть приложение, которое включает кнопку, которую вы нажимаете, которая прокручивает страницу с помощью JS.Ждите программных прокрутки селен/транспортир
Я получаю сообщение об ошибке «Элемент не кликается в точке (somepoint, somepoint)», я думаю, это связано с тем, что селен/транспортир не знает о динамическом прокрутке и поэтому не ждет его, как я могу установить определенное время ожидания перед попыткой следующего действия?
Я в конечном итоге только с помощью browser.wait(), однако ваше решение может быть лучше, это EC.presenceOf эквивалентно 'browser.wait (функция() { возврата (elmLocator) .isPresent(); }, 3000); '? потому что я пробовал это, и он не работал – Melbourne2991
@ Melbourne2991 Как и все методы WebdriverJS 'isPresent()' возвращает обещание, и ожидание ожидает, что функция вернет true/false. Таким образом, ваш метод должен выглядеть как 'browser.wait (function() {return (elmLocator) .isPresent(). Then (return function (isPresent) {return isPresent;});}, 3000);' – nilesh
Также 'EC.presenceOf 'использует' isPresent'. Проверьте код транспортира [здесь] (https://github.com/angular/protractor/blob/master/lib/expectedConditions.js#L288-L290) – nilesh