selenium-webdriver
Скроллинг
Поиск…
Вступление
В этой теме будут предложены несколько способов выполнения прокрутки с selenium
Прокрутка с использованием Python
1. Прокрутка к целевому элементу (кнопка «BROWSE TEMPLATES» внизу страницы) с помощью Actions
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.get('http://www.w3schools.com/')
target = driver.find_element_by_link_text('BROWSE TEMPLATES')
actions = ActionChains(driver)
actions.move_to_element(target)
actions.perform()
2. Прокрутка к целевому элементу (кнопка «BROWSE TEMPLATES» внизу страницы) с помощью JavaScript
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.w3schools.com/')
target = driver.find_element_by_link_text('BROWSE TEMPLATES')
driver.execute_script('arguments[0].scrollIntoView(true);', target)
3. Прокрутка к целевому элементу (кнопка «BROWSE TEMPLATES» внизу страницы) со встроенным методом
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.w3schools.com/')
target = driver.find_element_by_link_text('BROWSE TEMPLATES')
target.location_once_scrolled_into_view
Обратите внимание, что location_once_scrolled_into_view
также возвращает x
, y
координаты элемента после прокрутки
4. Прокрутка в нижней части страницы с помощью Keys
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('http://www.w3schools.com/')
driver.find_element_by_tag_name('body').send_keys(Keys.END) # Use send_keys(Keys.HOME) to scroll up to the top of page
Обратите внимание, что send_keys(Keys.DOWN)
/ send_keys(Keys.UP)
и send_keys(Keys.PAGE_DOWN)
/ send_keys(Keys.PAGE_UP)
также могут использоваться для прокрутки
Различные прокрутки с использованием java разными способами
Ниже дать решение можно также использовать в других поддерживаемых языках программирования с некоторыми изменениями синтаксиса
- Выполнение Прокрутка вниз по страницам / разделу / разделению на веб-странице, в то время как есть настраиваемая полоса прокрутки (не прокрутка браузера). Нажмите здесь. Для демонстрации и проверки полосы прокрутки имеет свой независимый элемент.
В приведенном ниже коде передайте элемент полосы прокрутки и укажите точки прокрутки.
public static boolean scroll_Page(WebElement webelement, int scrollPoints)
{
try
{
System.out.println("---------------- Started - scroll_Page ----------------");
driver = ExecutionSetup.getDriver();
dragger = new Actions(driver);
// drag downwards
int numberOfPixelsToDragTheScrollbarDown = 10;
for (int i = 10; i < scrollPoints; i = i + numberOfPixelsToDragTheScrollbarDown)
{
dragger.moveToElement(webelement).clickAndHold().moveByOffset(0, numberOfPixelsToDragTheScrollbarDown).release(webelement).build().perform();
}
Thread.sleep(500);
System.out.println("---------------- Ending - scroll_Page ----------------");
return true;
}
catch (Exception e)
{
System.out.println("---------------- scroll is unsucessfully done in scroll_Page ----------------");
e.printStackTrace();
return false;
}
}
- Выполнение прокрутки вверх страницы / раздела / деления на веб-странице, пока есть пользовательская полоса прокрутки (не прокрутка браузера). Нажмите здесь. Для демонстрации и проверки полосы прокрутки имеет свой независимый элемент.
В приведенном ниже коде передайте элемент полосы прокрутки и укажите точки прокрутки.
public static boolean scroll_Page_Up(WebElement webelement, int scrollPoints)
{
try
{
System.out.println("---------------- Started - scroll_Page_Up ----------------");
driver = ExecutionSetup.getDriver();
dragger = new Actions(driver);
// drag upwards
int numberOfPixelsToDragTheScrollbarUp = -10;
for (int i = scrollPoints; i > 10; i = i + numberOfPixelsToDragTheScrollbarUp)
{
dragger.moveToElement(webelement).clickAndHold().moveByOffset(0, numberOfPixelsToDragTheScrollbarUp).release(webelement).build().perform();
}
System.out.println("---------------- Ending - scroll_Page_Up ----------------");
return true;
}
catch (Exception e)
{
System.out.println("---------------- scroll is unsucessfully done in scroll_Page_Up----------------");
e.printStackTrace();
return false;
}
}
- Чтобы выполнить прокрутку вниз, когда несколько прокрутки браузера (Встроенный браузер), и вы хотите прокрутить вниз с помощью клавиши «Вниз» . Нажмите здесь для демонстрации
В приведенном ниже коде передайте свой элемент области прокрутки, например
<div>
и нажмите кнопку «вниз».
public static boolean pageDown_New(WebElement webeScrollArea, int iLoopCount)
{
try
{
System.out.println("---------------- Started - pageDown_New ----------------");
driver = ExecutionSetup.getDriver();
dragger = new Actions(driver);
for (int i = 0; i <= iLoopCount; i++)
{
dragger.moveToElement(webeScrollArea).click().sendKeys(Keys.PAGE_DOWN).build().perform();
}
System.out.println"---------------- Ending - pageDown_New ----------------");
return true;
}
catch (Exception e)
{
System.out.println("---------------- Not able to do page down ----------------");
return false;
}
}
- Чтобы выполнить прокрутку вверх, когда несколько прокрутки браузера (Встроенный браузер), и вы хотите прокрутить вверх с помощью клавиши UP UP . Нажмите здесь для демонстрации
В нижеприведенном коде передайте свой элемент области прокрутки, например
<div>
и нажмите клавишу вверх.
public static boolean pageUp_New(WebElement webeScrollArea, int iLoopCount)
{
try
{
System.out.println("---------------- Started - pageUp_New ----------------");
driver = ExecutionSetup.getDriver();
dragger = new Actions(driver);
for (int i = 0; i <= iLoopCount; i++)
{
dragger.moveToElement(webeScrollArea).click().sendKeys(Keys.PAGE_UP).build().perform();
}
System.out.println("---------------- Ending - pageUp_New ----------------");
return true;
}
catch (Exception e)
{
System.out.println("---------------- Not able to do page up ----------------");
return false;
}
}
- Чтобы выполнить прокрутку вниз, когда несколько прокрутки браузера (Встроенный браузер), и вы хотите прокрутить вниз с помощью клавиши «Только стрелка вниз» . Нажмите здесь для демонстрации
В приведенном ниже коде передайте свой элемент области прокрутки, например
<div>
и нажмите клавишу «вниз».
public static boolean scrollDown_Keys(WebElement webeScrollArea, int iLoopCount)
{
try
{
System.out.println("---------------- Started - scrollDown_Keys ----------------");
driver = ExecutionSetup.getDriver();
dragger = new Actions(driver);
for (int i = 0; i <= iLoopCount; i++)
{
dragger.moveToElement(webeScrollArea).click().sendKeys(Keys.DOWN).build().perform();
}
System.out.println("---------------- Ending - scrollDown_Keys ----------------");
return true;
}
catch (Exception e)
{
System.out.println("---------------- Not able to do scroll down with keys----------------");
return false;
}
}
- Чтобы выполнить прокрутку вверх, когда несколько прокрутки браузера (Встроенный браузер), и вы хотите прокручивать вверх с помощью клавиши «Только стрелка вверх» . Нажмите здесь для демонстрации
В приведенном ниже коде передайте свой элемент области прокрутки, например
<div>
и введите требуемый ключ.
public static boolean scrollUp_Keys(WebElement webeScrollArea, int iLoopCount)
{
try
{
System.out.println("---------------- Started - scrollUp_Keys ----------------");
driver = ExecutionSetup.getDriver();
dragger = new Actions(driver);
for (int i = 0; i <= iLoopCount; i++)
{
dragger.moveToElement(webeScrollArea).click().sendKeys(Keys.UP).build().perform();
}
System.out.println("---------------- Ending - scrollUp_Keys ----------------");
return true;
}
catch (Exception e)
{
System.out.println("---------------- Not able to do scroll up with keys----------------");
return false;
}
}
- Чтобы выполнить прокрутку вверх / вниз при прокрутке браузера (встроенный браузер), и вы хотите прокручивать вверх / вниз только с фиксированной точкой . Нажмите здесь для демонстрации
В приведенном ниже коде передайте свою точку прокрутки. Положительное означает, что вниз и отрицательные средства прокручиваются вверх.
public static boolean scroll_without_WebE(int scrollPoint)
{
JavascriptExecutor jse;
try
{
System.out.println("---------------- Started - scroll_without_WebE ----------------");
driver = ExecutionSetup.getDriver();
jse = (JavascriptExecutor) driver;
jse.executeScript("window.scrollBy(0," + scrollPoint + ")", "");
System.out.println("---------------- Ending - scroll_without_WebE ----------------");
return true;
}
catch (Exception e)
{
System.out.println("---------------- scroll is unsucessful in scroll_without_WebE ----------------");
e.printStackTrace();
return false;
}
}
- Чтобы выполнить прокрутку вверх / вниз при прокрутке браузера (встроенный браузер), и вы хотите прокручивать вверх / вниз, чтобы сделать элемент в видимой области или динамическом прокрутке . Нажмите здесь для демонстрации
В приведенном ниже коде передайте свой элемент.
public static boolean scroll_to_WebE(WebElement webe)
{
try
{
System.out.println("---------------- Started - scroll_to_WebE ----------------");
driver = ExecutionSetup.getDriver();
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", webe);
System.out.println("---------------- Ending - scroll_to_WebE ----------------");
return true;
}
catch (Exception e)
{
System.out.println("---------------- scroll is unsucessful in scroll_to_WebE ----------------");
e.printStackTrace();
return false;
}
}
Примечание. Пожалуйста, проверьте свой случай и используйте методы. Если какой-либо случай отсутствует, дайте мне знать.