selenium-webdriver
scrollen
Zoeken…
Invoering
Dit onderwerp biedt verschillende manieren om scrollen met selenium
te voeren
Scrollen met Python
1. Scrollen naar doelelement (knop "BLADEREN TEMPLATES" onderaan de pagina) met 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. Scrollen naar doelelement (knop "BLADEREN TEMPLATES" onderaan de pagina) met 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. Scrollen naar doelelement (knop "BLADEREN TEMPLATES" onderaan de pagina) met ingebouwde methode
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
Merk op dat location_once_scrolled_into_view
ook x
, y
coördinaten van het element retourneert na het scrollen
4. Met Keys
naar de onderkant van de pagina scrollen
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
Merk op dat send_keys(Keys.DOWN)
/ send_keys(Keys.UP)
en send_keys(Keys.PAGE_DOWN)
/ send_keys(Keys.PAGE_UP)
ook kunnen worden gebruikt voor scrollen
Verschillende scrollen met Java op verschillende manieren
Hieronder geven oplossing kan ook worden gebruikt in een andere ondersteunde programmeertalen met enkele syntaxiswijzigingen
- Om dit te doen Scrol omlaag / pagina / afdeling in webpagina terwijl er een aangepaste schuifbalk is (geen browserschuiven). Klik hier voor demo en controleer of de schuifbalk een onafhankelijk element heeft.
In onderstaande code geeft u uw schuifbalkelement door en hebt u schuifpunten nodig.
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;
}
}
- Om Scroll Up pagina / sectie / divisie in webpagina te doen terwijl er een aangepaste schuifbalk is (geen browser scroll). Klik hier voor demo en controleer of de schuifbalk een onafhankelijk element heeft.
Geef in de onderstaande code uw schuifbalkelement door en vereist schuifpunten.
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;
}
}
- Doen omlaag scrollen wanneer meerdere browsers scrollen (Ingebouwde browser) en u wilt omlaag scrollen met de toets Page Down . Klik hier voor demo
In de onderstaande gegeven code geeft u uw scrollgebied-element zoals
<div>
en vereist u de toets Pagina omlaag.
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;
}
}
- Doen OMHOOG scrollen wanneer meerdere browsers scrollen (Ingebouwde browser) en u omhoog wilt scrollen met de Page UP-toets . Klik hier voor demo
Geef in onderstaande code uw scrollgebied-element zoals
<div>
en vereist een pagina omhoog-toets.
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;
}
}
- Om dit te doen, scrol je omlaag wanneer meerdere browsers schuiven (ingebouwde browser) en je wilt omlaag scrollen met alleen de pijl-omlaag-toets . Klik hier voor demo
Geef in onderstaande code uw scrollgebied-element zoals
<div>
en gebruik de down-toets.
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;
}
}
- Om omhoog te scrollen wanneer meerdere browsers scrollen (Ingebouwde browser) en u omhoog wilt scrollen met alleen de pijltoets Omhoog . Klik hier voor demo
Geef in onderstaande code uw scrollgebied-element zoals
<div>
en gebruik de omhoog-toets.
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;
}
}
- Om dit te doen scrolt u omhoog / omlaag wanneer de browser scrolt (Ingebouwde browser) en wilt u omhoog / omlaag scrollen met Alleen vast punt . Klik hier voor demo
Geef in de onderstaande code uw schuifpunt door. Positief betekent omlaag en negatief betekent omhoog scrollen.
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;
}
}
- Om te doen scroll omhoog / omlaag wanneer browser scroll (ingebouwde browser) en u wilt omhoog / omlaag scrollen naar Voor element in zichtbaar gebied of dynamische scroll maken . Klik hier voor demo
Geef in onderstaande code uw element door.
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;
}
}
Opmerking: controleer uw case en gebruik methoden. Laat het me weten als er iets ontbreekt.