selenium-webdriver
Przewijanie
Szukaj…
Wprowadzenie
W tym temacie omówiono kilka sposobów przewijania za pomocą selenium
Przewijanie za pomocą Pythona
1. Przewijanie do elementu docelowego (przycisk „PRZEGLĄDAJ SZABLONY” u dołu strony) za pomocą 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. Przewijanie do elementu docelowego (przycisk „PRZEGLĄDAJ SZABLONY” u dołu strony) za pomocą 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. Przewijanie do elementu docelowego (przycisk „PRZEGLĄDAJ SZABLONY” u dołu strony) za pomocą wbudowanej metody
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
Zauważ, że location_once_scrolled_into_view
również przewija współrzędne x
, y
elementu po przewinięciu
4. Przewijanie do dołu strony za pomocą 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
Pamiętaj, że do przewijania można również użyć send_keys(Keys.DOWN)
/ send_keys(Keys.UP)
i send_keys(Keys.PAGE_DOWN)
/ send_keys(Keys.PAGE_UP)
Różne przewijanie przy użyciu Java na różne sposoby
Poniższe rozwiązanie może być również użyte w innych obsługiwanych językach programowania z pewnymi zmianami składni
- Aby to zrobić Przewiń stronę / sekcję / dział w dół, gdy jest niestandardowy pasek przewijania (nie przewijanie w przeglądarce). Kliknij tutaj Aby zobaczyć wersję demo i sprawdź, czy pasek przewijania ma swój niezależny element.
W poniższym kodzie podaj swój element paska przewijania i wymagaj punktów przewijania.
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;
}
}
- Aby wykonać przewijanie w górę strony / sekcji / podziału na stronie internetowej, gdy istnieje niestandardowy pasek przewijania (nie przewijanie w przeglądarce). Kliknij tutaj Aby zobaczyć wersję demo i sprawdź, czy pasek przewijania ma swój niezależny element.
W poniższym kodzie podaj swój element paska przewijania i wymagaj punktów przewijania.
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;
}
}
- Aby przewinąć w dół, gdy przewija się wiele przeglądarek (wbudowana przeglądarka) i chcesz przewinąć w dół za pomocą klawisza Page Down . Kliknij tutaj, aby zobaczyć wersję demonstracyjną
W podanym poniżej kodzie podaj element obszaru przewijania, taki jak
<div>
i wymagaj klawisza przewijania w dół.
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;
}
}
- Aby przewijać w GÓRĘ, gdy przewija się wiele przeglądarek (wbudowana przeglądarka) i chcesz przewijać w górę za pomocą klawisza Page UP . Kliknij tutaj, aby zobaczyć wersję demonstracyjną
Poniżej podany kod przekaż element obszaru przewijania, taki jak
<div>
i wymagaj klawisza przewijania w górę.
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;
}
}
- Aby przewinąć w dół, gdy przewija się wiele przeglądarek (wbudowana przeglądarka) i chcesz przewinąć w dół za pomocą klawisza Tylko strzałka w dół . Kliknij tutaj, aby zobaczyć wersję demonstracyjną
W podanym poniżej kodzie podaj element obszaru przewijania, taki jak
<div>
i wymagaj klawisza strzałki w dół.
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;
}
}
- Aby przewijać w górę, gdy przewija się wiele przeglądarek (wbudowana przeglądarka) i chcesz przewijać w górę za pomocą klawisza strzałki tylko w górę . Kliknij tutaj, aby zobaczyć wersję demonstracyjną
W podanym poniżej kodzie podaj element obszaru przewijania, taki jak
<div>
i wymagaj klawisza up.
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;
}
}
- Aby przewijać w górę / w dół, gdy przewijasz przeglądarkę (wbudowana przeglądarka) i chcesz przewijać w górę / w dół tylko z ustalonym punktem . Kliknij tutaj, aby zobaczyć wersję demonstracyjną
W poniższym kodzie podaj swój punkt przewijania. Pozytywne oznacza w dół, a negatywne oznacza przewijanie w górę.
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;
}
}
- Aby przewijać w górę / w dół, gdy przewijasz przeglądarkę (wbudowana przeglądarka), a chcesz przewinąć w górę / w dół, aby wykonać element w widocznym obszarze lub przewijanie dynamiczne . Kliknij tutaj, aby zobaczyć wersję demonstracyjną
W poniższym kodzie podaj swój element.
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;
}
}
Uwaga: sprawdź swoją sprawę i zastosuj metody. Jeśli brakuje jakiejkolwiek sprawy, daj mi znać.