Как я могу выполнить команду JS, используя мой chromedriver, внутри кода Java? - PullRequest
0 голосов
/ 06 февраля 2019

Я хотел бы спросить вас, как я могу прокрутить веб-страницу с помощью команды JS.Тем не менее, я хочу эту команду JS внутри блока кода Java.Для вышеупомянутой цели позвольте мне сказать вам, что я также использую фреймворк Selenium.Возможно ли это?

Цель состоит в том, чтобы сделать это с помощью Selenium и Java.Меня не волнует общее использование JavascriptExecutor.Я хочу их комбинацию для SCROLL функциональности!

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Со своей стороны, я хотел бы ответить в подробно со всеми возможными вариантами прокрутки, потому что это не определено в вопросе.Поэтому ниже я даю практический и теоретический ответ.Первый, который закончил вашу работу, и второй, который прочитал теорию для будущего использования, потому что есть много вариантов этой темы.

Пример кода:

import org.openqa.selenium.JavascriptExecutor; // packet that you need to import

WebDriver driver = new ChromeDriver(); // driver creation

JavascriptExecutor js = (JavascriptExecutor) driver; // giving to your driver the possibility to execute JS commands

js.executeScript("window.scrollBy(2000,1000)", ""); // scroll 2000 for x-coord and 1000 for y-coord
js.executeScript("window.scrollByPages(4)", ""); // scroll down the document by 4 pages
js.executeScript("window.scrollByPages(-4)", ""); // scroll up the document by 4 pages
js.executeScript("window.scrollByLines(10)", ""); // scroll down the document by 10 lines

WebElement toScrollElement = driver.findElement(By.XPATH_OR_ID_OR_OTHER("GIVEN_XPATH_OR_ID_OR_OTHER")); // locate the element you want to scroll into
js.executeScript("arguments[0].scrollIntoView(true);", toScrollElement); // scroll until the given element

Документация по теории:

Я, например, считаю, что официальная документация по этой теме включена в следующие ссылки: здесь для прокрутки с помощью Окно параметры и здесь для прокрутки с Элемент параметры.Я уверен, что существует больше документации из других источников.Я просто представляю вам источники, из которых я взял информацию.

Кроме того, у JavascriptExecutor есть второй вариант - js.executeAsyncScript();.Вы также можете прочитать документацию самого JavascriptExecutor с здесь .

Надеюсь, что я помог!Если есть что-то еще относительно параметров прокрутки, я был бы рад это увидеть.

0 голосов
/ 06 февраля 2019

Если я вас правильно понимаю, вы пытаетесь прокрутить страницу внутри своего кода селена.Вы можете попробовать что-то вроде этого.

WebDriver driver = new ChromeDriver();

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,1000)"); //Scroll vertically down by 1000 pixels

Дайте нам знать, как это работает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...