я также использую driver.scrollTo, пока другого более оптимального варианта не нашла
Привожу пример своей реализации на РНР.
Фрагмент из теста:
...
$maxScrols = //тут присваивается значение = (кол-ва элементов из базы / на элементов на странице)
$a = 0;
while (!$I->canSeeElement(['name' => $nameWoD]) && ($a < $maxScrols)) { // скроллим до тех пор пока не найдем искомое или не прокрутим весь список
$I->pageDown(1, '#ru.livemaster:id/lvOwnShop'); // одну страницу в низ по id скроллируемого элемента
$I->waitForElement('#ru.livemaster:id/master_shop_item'); // на всякий случай, что скролл завершился
$a++; // увеличиваем счетчик
}
...
Сама функция pageDown:
public function pageDown($pages = 1, $scrollElement = null) {
$selector = $this->scrollSelector($scrollElement); // тут свой механизм определяющий передал я id или class скроллируемого элемента
if ($pages > 0) {
for ($i = 1; $i <= $pages; $i++) {
try {
$this->byAndroidUIAutomator('new UiSelector().' . $selector . ';')->enabled(); // проверка что данный элемент существует
$this->execUIA('new UiScrollable(new UiSelector().' . $selector . ').scrollForward();'); // скролл вниз 1 страница
} catch (Exception $e) {
$this->execUIA('new UiScrollable(new UiSelector().className("android.widget.ListView").scrollForward();'); // если не определен скроллируемый элемент то по умолчанию первый найденный android.widget.ListView
}
}
}
}
Таким же способом реализовано pageUp только .scrollForward() замене на .scrollBackward(). По похожему принципу реализованы также механизмы рывка в верх и в низ.
чушь пишете Ви - так как задача которую ви тут привели с кнопкой About тривиальная
Я тоже Ору с Тараса…
Что значит
Количевство прокруток можно коректировать??
То я в цикле буду крутить 10 раз, то 5? Что за бред, а как мне определить сколько раз крутить на данной странице? А если элементов бесконечное множество то что ?
Верить Вам я не буду!
В данном случае у Вас отрабатывает. И я уверен, что в большинстве Ваших кейсов отрабатывает, но Вы хоть понимаете, что происходит у Вас с точки зрения кода, как долго это отрабатывает…
та никто не говорит никому верить, есть проблема, - есть 100500 вариантов решения… по моему ми друг друга не поняли, - закриваем холивар.
(без применения форматирования)`ето значит что он должен бить в layout - About нету в layout - оно работает у Вас ?
Работает, потому что принцип тот же что у Вас, но он оптимизирован это стандартная реализация от Google. Он скролит ровно до того элемента, который указан в локаторе и не важно есть ли он сейчас в DOM или нет. Если его вообще нет на странице (не в DOM), то выдаст ошибку после того как пройдется по всей странице вниз потом вверх.
Холивар закрыть нельзя, потому что кто-то Увидит Ваш г…код, скопирует, и будет рад. Есть элегантные, быстрые, и, наконец, стандартные решения. Вы предпочитаете костыли. Другим костыли зачем предлагать?
Не может оно отрабатывать - разве что на IOS
На входе WebElement, что нонсенс для Android’a. Так как мы не можем найти то, чего нет.
код бил написан на коленке…гвно ни гоно не тебе судить, ето не го**код “driver.findElementByAndroidUIAutomator(“new UiScrollable(new UiSelector().scrollable(true).instance(0))” +
“.scrollIntoView(new UiSelector().resourceId(” + elemId + “).instance(0))”);” ?))))))
извини чувак, но мне достаточно кода с твоего github-а - у меня все … так что не тебе судить о га**коде)
Выключите свой комплекс Наполеона. И послушайте советы
меняю свой гакод на вам гаокод
Я, к глубокому своему стыду, не понимаю Ваш русский
то українська)
Ответы даны, флейм прекращаем. Тема закрыта.