selenium-webdriver
De desplazamiento
Buscar..
Introducción
Este tema proporcionará varios enfoques sobre cómo realizar el desplazamiento con selenium
Desplazamiento usando Python
1. Desplazarse al elemento de destino (botón "NAVEGAR PLANTILLAS" en la parte inferior de la página) con 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. Desplácese hasta el elemento de destino (botón "BROWSE TEMPLATES" en la parte inferior de la página) con 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. Desplácese hasta el elemento de destino (botón "BROWSE TEMPLATES" en la parte inferior de la página) con el método incorporado
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
Tenga en cuenta que location_once_scrolled_into_view
también devuelve las coordenadas x
, y
del elemento después de desplazarse
4. Desplazarse hasta la parte inferior de la página con las 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
Tenga en cuenta que send_keys(Keys.DOWN)
/ send_keys(Keys.UP)
y send_keys(Keys.PAGE_DOWN)
/ send_keys(Keys.PAGE_UP)
también podrían usarse para desplazarse
Desplazamiento diferente usando java de diferentes maneras.
A continuación, la solución para dar también se puede usar en otros lenguajes de programación compatibles con algunos cambios de sintaxis
- Para desplazarse hacia abajo en la página / sección / división en la página web mientras haya una barra de desplazamiento personalizada (no es el desplazamiento del navegador). Haga clic aquí para ver la demo y verifique que la barra de desplazamiento tenga su elemento independiente.
En el siguiente código dado pase el elemento de la barra de desplazamiento y requiera puntos de desplazamiento.
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;
}
}
- Para hacerlo de desplazamiento ascendente página / sección / división en la página web mientras que hay barra de desplazamiento a medida (no el navegador de desplazamiento). Haga clic aquí para ver la demo y verifique que la barra de desplazamiento tenga su elemento independiente.
En el siguiente código dado pase el elemento de la barra de desplazamiento y requiera puntos de desplazamiento.
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;
}
}
- Para desplazarse hacia abajo cuando el navegador múltiple se desplaza (navegador integrado) y desea desplazarse hacia abajo con la tecla de avance de página . Haga clic aquí para la demostración
En el código dado a continuación, pase su elemento de área de desplazamiento como
<div>
y requiera la tecla de página abajo.
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;
}
}
- Para desplazarse hacia arriba cuando el navegador múltiple se desplaza (navegador integrado) y desea desplazarse hacia arriba con la tecla Page UP . Haga clic aquí para la demostración
En el código dado a continuación, pase su elemento de área de desplazamiento como
<div>
y requiera una página arriba.
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;
}
}
- Para desplazarse hacia abajo cuando el navegador múltiple se desplaza (navegador integrado) y desea desplazarse hacia abajo con la tecla de flecha solo hacia abajo . Haga clic aquí para la demostración
En el código dado a continuación, pase su elemento de área de desplazamiento como
<div>
y requiera la tecla hacia abajo.
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;
}
}
- Para desplazarse hacia arriba cuando el navegador múltiple se desplaza (navegador integrado) y desea desplazarse hacia arriba con la tecla de flecha hacia arriba solamente . Haga clic aquí para la demostración
En el código dado a continuación, pase su elemento de área de desplazamiento como
<div>
y requiera una tecla arriba.
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;
}
}
- Para desplazarse hacia arriba / abajo cuando el navegador se desplaza (navegador integrado) y desea desplazarse hacia arriba / abajo con solo un punto fijo . Haga clic aquí para la demostración
En el siguiente código dado pase su punto de desplazamiento. Positivo significa abajo y negativo significa desplazarse hacia arriba.
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;
}
}
- Para desplazarse hacia arriba / abajo cuando el navegador navega (navegador incorporado) y desea desplazarse hacia arriba / abajo para hacer elemento en el área visible o desplazamiento dinámico . Haga clic aquí para la demostración
En el siguiente código dado pase su elemento.
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;
}
}
Nota: Por favor verifique su caso y utilice métodos. Si falta algún caso, hágamelo saber.