Вариант использования: Выполнить горизонтальную прокрутку, пока не будет найден элемент
Предварительные требования: Селен - Java 3.141 / chrome
Ниже приведены мои несколько примеров фрагментов
JavascriptExecutor jse = (JavascriptExecutor) driver; //create jse object and with this object, execute js
jse.executeScript("arguments[0].scrollLeft += 250",driver.findElement(By.className("wux-scroller")));
jse.executeScript("window.scrollBy(500,0)");
jse.executeScript("scroll(500, 0)");
jse.executeScript("window.scrollTo(500,0)");
jse.executeScript("arguments[0].scrollIntoView();",el);
jse.executeScript("arguments[0].scrollLeft = arguments[1];",driver.findElement(By.className("wux-scroller")), j)
Ожидаемый результат: Для горизонтальной прокрутки windows до отображения элемента
Фактический результат: Прокрутка не происходит, но также не выдается никаких исключений
Примечание:
Страница имеет как горизонтальную, так и вертикальную полосу прокрутки
Оба элемента прокрутки имеют один и тот же класс <div class="wux-scroller wux-ui-is-rendered" >
(я думаю) Windows стандартные скроллеры используются как для вертикальной, так и для горизонтальной прокрутки. Изображение прилагается.
Если I заменить scrollLeft на scrollTop в указанном выше фрагменте, затем прокрутите происходит вертикально хорошо
Ссылка ниже, но не помогает
как прокрутить горизонтальную полосу прокрутки, которая находится внутри окна, используя java
Обновление 2:
Пожалуйста, найдите прикрепленное изображение для небольшого подробного описания.
Обратите внимание:
- Есть два контейнера с горизонтальной прокруткой. Это вызывает некоторые проблемы?
- контейнер gridengine является заполнителем для 'wux-scroller' и активируется, когда пользователь прокручивает его вручную
// Попытка с использованием нижеприведенных фрагментов, но не работа.
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("window.scrollBy(-2000,0)");
jse.executeScript("arguments[0].scrollLeft = arguments[1];",driver.findElement(By.className("wux-layouts-gridengine-scroller-container")), 500);
jse.executeScript("arguments[0].scrollLeft = arguments[1];",driver.findElement(By.className("wux-scroller")), 500);
Обновление 3: решение
Ниже реализация python в селене java помогла выполнить горизонтальную прокрутку в моем приложении
jse.executeScript("document.getElementsByClassName('wux-scroller wux-ui-is-rendered')[0].scrollLeft += 650");
jse.executeScript("document.getElementsByClassName('wux-scroller wux-ui-is-rendered')[0].scrollTo(350,0)");