Добрый день, не получается сделать прокрутку до элемента, темы несомненно уже были подобные на форме, но результата нет. Локатор работающий, судя по ответам на формах js тоже должен работать. Обычный Action тоже не фурычит
Код
WebElement element = driver.findElement(By.xpath("//*[@class = "nameclass" and text() = 123]]"))
Actions action= new Actions(driver);
action.moveToElement(element).build().perform();
or
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element )
or
((Locatable) element ).getCoordinates().inViewPort();
Проблема собственно в том, что он пытается найти элемент которого нет, чтобы прокрутить к элементу он делает findElement и собственно на этом все, ошибка - no such element: Unable to locate element, поскольку поиск происходит в рамках текущей видимости.
Вопрос, как найти невидимый элемент, до того как к нему пройдет прокрутка?
Возвращает значение top для элемента. Можно выполнить этот js на странице и получить значение. На него и проскролить вниз страницу. Ну или проскролить на занчение
Я пытался использовать ожидания различные, но смысл ждать появления элемента, если нужно прокрутить страницу до этого элемента чтобы он появился. Как с этим бороться? Или WaitForElementPresent все равно найдет элемент, а потом js прокрутит до него?
да скроллит, но проблема что такие элементы повторяются, и он крутит до первой ближайшей строки, уникальности никакой нет, только если локатор составлять который я выше писал. Тут только как то делать элемент видимым нужно
напрашивается цикл
и/или фильтр по критерию
если нужно в конец мотать - когда конец подгружается
то похоже прийдется брать коллекцию
и мотать до конца
потом заново инитить коллекцию пока не найдете свой элемент с кастомным
тестом
не очень надежно конечно…
не чат, собственно мне сейчас просто нужно прокрутить в самый низ страницы и все, будет успех. Но все методы js визуально не трогают скрол, мне нужно прям реально действия пользователя, жмакнул колесиком и полетела вниз страница.
Сам скролл на сайте работает так $(".slick-viewport").scrollTop(200)