В чем разница между вариантами прокрутки? - PullRequest
0 голосов
/ 14 февраля 2019

Я пробовал несколько способов добавления прокрутки к таблицам, но только один из них работает правильно.Чем они отличаются?

Первый:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView();", Element);

Второй:

WebElement element1 = driver.findElement(By.id("scrolled_element"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element1);

Третий:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollBy(0,1000)");

Четвертый:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");

Ответы [ 2 ]

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

Element.scrollIntoView ()

Метод Element.scrollIntoView () прокручивает элемент, для которого он вызывается, в Окно просмотра окна браузера.

  • Синтаксис:

    • element.scrollIntoView()
    • element.scrollIntoView(alignToTop) // Логический параметр
    • element.scrollIntoView(scrollIntoViewOptions) // Параметр объекта
  • Ваши примеры использования:

    • executeScript("arguments[0].scrollIntoView();", Element): эта строка кода прокручивает элемент в видимой области окна браузера.
    • executeScript("arguments[0].scrollIntoView(true);", element1): эта строка кода прокручивает элемент для выравнивания по верху области просмотра прокручиваемого предка.Эта опция соответствует scrollIntoViewOptions: {block: "start", inline: "nearest"}.По сути, это значение по умолчанию.
    • executeScript("arguments[0].scrollIntoView(false)", element1);: эта строка кода прокручивает элемент, который будет выровнен, к нижней части области просмотра прокручиваемого предка.Эта опция соответствует scrollIntoViewOptions: {block: "end", inline: "nearest"}.

Window.scrollBy ()

window.scrollBy () метод scrollsдокумент в текущем окне на заданную сумму.

  • Синтаксис:

    • window.scrollBy(x-coord, y-coord)
    • window.scrollBy(options)
  • Параметры:

    • x-coord - это горизонтальное значение пикселя, по которому вы хотите прокрутить.
    • y-coord - вертикальный пиксельзначение, которое вы хотите прокрутить.
    • options - это словарь ScrollToOptions.
  • Ваш вариант использования:

    • executeScript("window.scrollBy(0,1000)"): эта строка кода будет прокручивать документ в окне вниз на 0 горизонтальных пикселей и 1000 вертикальные пиксели, которые вы хотите прокрутить.

Window.scrollTo ()

Window.scrollTo () Метод выполняет прокрутку до определенного набора координат в документе.

  • Синтаксис:

    • window.scrollTo(x-coord, y-coord)
    • window.scrollTo(options)
  • Параметры:

    • x-coord - пиксель вдольгоризонтальная ось документа, который вы хотите отобразить в верхнем левом углу.
    • y-coord - это пиксель вдоль вертикальной оси документа, который вы хотите отобразить в верхнем левом углу.
    • options - это словарь ScrollToOptions.
  • Ваш вариант использования:

    • executeScript("window.scrollTo(0, document.body.scrollHeight)"): эта строка кодапрокрутит документ в окне вниз до bottom страницы.
0 голосов
/ 14 февраля 2019

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


.scrollIntoView () vs .scrollIntoView(true)

https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView

Различий не должно быть, поскольку в документации указано, что по умолчанию .scrollIntoView() на самом деле имеет значение по умолчанию true.


.scrollBy ()

https://www.w3schools.com/jsref/met_win_scrollby.asp

Прокрутка документа указанными пикселями.Это означает, что если ваш верхний левый видовой экран имеет (10,10), то .scrollby(5,6) означает, что после смещения видовой экран будет иметь пиксельную координату (15,16).


.scrollToView ()

https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo

Делает то, что предлагает - т.е. прокручивает до предоставленных вами координат.Это отличается от прокрутки на (т.е. приведенный выше пример).Это означает, что .scrollTo(1,1) будет прокручивать документ так, что ваш левый верхний видовой экран теперь имеет пиксельную координату (1,1), независимо от того, что было раньше.


На ваш отдельный вопрос о том, чтоэто общие параметры прокрутки - ну, есть также window.scroll(), но на основе приведенной ниже статьи SO не должно быть никакой разницы с scrollTo():

JavaScript window.scroll против window.scrollTo

...