Τι είναι μια γραμμή κύλισης;
Η Γραμμή κύλισης είναι μια δυνατότητα που μπορείτε να μετακινηθείτε στην οθόνη σε οριζόντια ή κατακόρυφη κατεύθυνση εάν η τρέχουσα κύλιση σελίδας δεν ταιριάζει στην ορατή περιοχή της οθόνης. Χρησιμοποιείται για να μετακινήσετε το παράθυρο πάνω και κάτω.
Το Selenium Webdriver δεν απαιτεί κύλιση για την εκτέλεση ενεργειών καθώς χειρίζεται το DOM. Αλλά σε ορισμένες ιστοσελίδες, τα στοιχεία γίνονται ορατά μόνο όταν ο χρήστης κάνει κύλιση σε αυτές. Σε τέτοιες περιπτώσεις μπορεί να απαιτείται κύλιση.
Η γραμμή κύλισης είναι δύο τύπων: Οριζόντια και κατακόρυφη γραμμή κύλισης όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.
Μεταβείτε στο Σελήνιο
Για κύλιση χρησιμοποιώντας το Selenium, μπορείτε να χρησιμοποιήσετε τη διεπαφή JavaScriptExecutor που βοηθά στην εκτέλεση μεθόδων JavaScript μέσω του Selenium Webdriver
Μάθετε περισσότερα για το JavaScriptExecutor
Σύνταξη:
Πρόγραμμα οδήγησης JavascriptExecutor js = (JavascriptExecutor);js.executeScript (Σενάριο, Επιχειρήματα);
- Script - Αυτή είναι η JavaScript που πρέπει να εκτελεστεί.
- Επιχειρήματα - Είναι τα επιχειρήματα του σεναρίου. Είναι προαιρετικό.
Σελήνιο σενάριο για κύλιση προς τα κάτω στη σελίδα
Ας δούμε την κύλιση προς τα κάτω σε μια ιστοσελίδα χρησιμοποιώντας το πρόγραμμα οδήγησης σεληνίου με τα ακόλουθα 3 σενάρια:
- Σενάριο 1: Για κύλιση προς τα κάτω στην ιστοσελίδα κατά pixel.
- Σενάριο 2: Για κύλιση προς τα κάτω στην ιστοσελίδα με την ορατότητα του στοιχείου.
- Σενάριο 3: Για κύλιση προς τα κάτω στην ιστοσελίδα στο κάτω μέρος της σελίδας.
- Σενάριο 4: Οριζόντια κύλιση στην ιστοσελίδα.
Σενάριο 1: Για κύλιση προς τα κάτω στην ιστοσελίδα κατά pixel.
Σενάριο σεληνίου
εισαγωγή org.openqa.selenium.JavascriptExecutor;εισαγωγή org.openqa.selenium.WebDriver;εισαγωγή org.openqa.selenium.chrome.ChromeDriver;εισαγωγή org.testng.annotations.Test;δημόσια τάξη ScrollByPixel {Πρόγραμμα οδήγησης WebDriver;@Δοκιμήδημόσιο κενό ByPixel () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");πρόγραμμα οδήγησης = νέο ChromeDriver ();Πρόγραμμα οδήγησης JavascriptExecutor js = (JavascriptExecutor);// Εκκινήστε την εφαρμογήdriver.get ("http://demo.guru99.com/test/guru99home/");// Για μεγιστοποίηση του παραθύρου. Αυτός ο κωδικός ενδέχεται να μην λειτουργεί με τα βάζα Selenium 3. Εάν το σενάριο αποτύχει, μπορείτε να καταργήσετε την παρακάτω γραμμήdriver.manage (). window (). μεγιστοποίηση ();// Αυτό θα μετακινηθεί προς τα κάτω στη σελίδα κατά 1000 pixel κάθεταjs.executeScript ("window.scrollBy (0,1000)");}}
Περιγραφή σεναρίου : Πρώτα στον παραπάνω κώδικα ξεκινάμε τη δεδομένη διεύθυνση URL στο πρόγραμμα περιήγησης Chrome. Στη συνέχεια, κάντε κύλιση της σελίδας κατά 1000 pixel στο executeScript. Η μέθοδος Javascript ScrollBy () μετακινεί την ιστοσελίδα στον συγκεκριμένο αριθμό pixel.
Η σύνταξη των μεθόδων ScrollBy () είναι:
executeScript ("window.scrollBy (x-pixels, y-pixels)");
x-pixels είναι ο αριθμός στον άξονα x, κινείται προς τα αριστερά εάν ο αριθμός είναι θετικός και κινείται προς τα δεξιά εάν ο αριθμός είναι αρνητικός .y-pixels είναι ο αριθμός στον άξονα y, μετακινείται προς τα κάτω εάν ο αριθμός είναι θετικό και μετακινείται προς τα πάνω εάν ο αριθμός είναι αρνητικός.
Παράδειγμα:
js.executeScript ("window.scrollBy (0,1000)"); // Μετακινηθείτε κατακόρυφα προς τα κάτω κατά 1000 pixel
Ανάλυση εξόδου: Εδώ είναι η έξοδος όταν εκτελείτε το παραπάνω σενάριο.
Σενάριο 2: Για κύλιση προς τα κάτω στην ιστοσελίδα με την ορατότητα του στοιχείου.
Σενάριο σεληνίου
εισαγωγή org.openqa.selenium.By;εισαγωγή org.openqa.selenium.JavascriptExecutor;εισαγωγή org.openqa.selenium.WebDriver;εισαγωγή org.openqa.selenium.WebElement;εισαγωγή org.openqa.selenium.chrome.ChromeDriver;εισαγωγή org.testng.annotations.Test;δημόσια τάξη ScrollByVisibleElement {Πρόγραμμα οδήγησης WebDriver;@Δοκιμήδημόσιο κενό ByVisibleElement () {System.setProperty ("webdriver.chrome.driver", "G: //chromedriver.exe");πρόγραμμα οδήγησης = νέο ChromeDriver ();Πρόγραμμα οδήγησης JavascriptExecutor js = (JavascriptExecutor);// Εκκινήστε την εφαρμογήdriver.get ("http://demo.guru99.com/test/guru99home/");// Εύρεση στοιχείου με κείμενο συνδέσμου και αποθήκευση στη μεταβλητή "Element"WebElement Element = driver.findElement (By.linkText ("Linux"));// Θα μετακινηθεί η σελίδα έως ότου βρεθεί το στοιχείοjs.executeScript ("επιχειρήματα [0] .scrollIntoView ();", Element);}}
Περιγραφή σεναρίου: Στον παραπάνω κώδικα, ξεκινάμε πρώτα το δεδομένο url στο πρόγραμμα περιήγησης Chrome. Στη συνέχεια, κάντε κύλιση στη σελίδα έως ότου το αναφερόμενο στοιχείο είναι ορατό στην τρέχουσα σελίδα. Η μέθοδος Javascript scrollIntoView () μετακινεί τη σελίδα έως ότου το αναφερόμενο στοιχείο είναι σε πλήρη προβολή:
js.executeScript ("επιχειρήματα [0] .scrollIntoView ();", Element);
"ορίσματα [0]" σημαίνει το πρώτο ευρετήριο της σελίδας που ξεκινά από το 0.
Όπου ένα "Στοιχείο" είναι ο εντοπιστής στην ιστοσελίδα.
Ανάλυση εξόδου: Εδώ είναι η έξοδος όταν εκτελείτε το παραπάνω σενάριο.
Σενάριο 3: Για κύλιση προς τα κάτω στην ιστοσελίδα στο κάτω μέρος της σελίδας.
Σενάριο σεληνίου
εισαγωγή org.openqa.selenium.JavascriptExecutor;εισαγωγή org.openqa.selenium.WebDriver;εισαγωγή org.openqa.selenium.chrome.ChromeDriver;εισαγωγή org.testng.annotations.Test;δημόσια τάξη ScrollByPage {Πρόγραμμα οδήγησης WebDriver;@Δοκιμήδημόσιο άκυρο ByPage () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");πρόγραμμα οδήγησης = νέο ChromeDriver ();Πρόγραμμα οδήγησης JavascriptExecutor js = (JavascriptExecutor);// Εκκινήστε την εφαρμογήdriver.get ("http://demo.guru99.com/test/guru99home/");// Θα μετακινηθεί η ιστοσελίδα μέχρι το τέλος.js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");}}
Περιγραφή σεναρίου: Στον παραπάνω κώδικα, ξεκινάμε πρώτα το δεδομένο url στο πρόγραμμα περιήγησης Chrome. Στη συνέχεια, μετακινηθείτε στο κάτω μέρος της σελίδας. Μέθοδος Javascript scrollTo () μετακινηθείτε μέχρι το τέλος της σελίδας.
js.executeScript ("window.scrollTo (0, document.body.scrollHeight)");
Το "document.body.scrollHeight" επιστρέφει το πλήρες ύψος του σώματος, δηλαδή την ιστοσελίδα.
Ανάλυση εξόδου: Εδώ είναι η έξοδος όταν εκτελείτε το παραπάνω σενάριο.
Σενάριο 4: Οριζόντια κύλιση στην ιστοσελίδα.
Σενάριο σεληνίου
εισαγωγή org.openqa.selenium.By;εισαγωγή org.openqa.selenium.JavascriptExecutor;εισαγωγή org.openqa.selenium.WebDriver;εισαγωγή org.openqa.selenium.WebElement;εισαγωγή org.openqa.selenium.chrome.ChromeDriver;εισαγωγή org.testng.annotations.Test;δημόσια τάξη HorizontalScroll {Πρόγραμμα οδήγησης WebDriver;@Δοκιμήδημόσιο άκυρο ScrollHorizontally () {System.setProperty ("webdriver.chrome.driver", "E: //Selenium//Selenium_Jars//chromedriver.exe");πρόγραμμα οδήγησης = νέο ChromeDriver ();Πρόγραμμα οδήγησης JavascriptExecutor js = (JavascriptExecutor);// Εκκινήστε την εφαρμογήdriver.get ("http://demo.guru99.com/test/guru99home/scrolling.html");WebElement Element = driver.findElement (By.linkText ("VBScript"));// Θα μετακινηθεί οριζόντια η σελίδα μέχρι να βρεθεί το στοιχείοjs.executeScript ("επιχειρήματα [0] .scrollIntoView ();", Element);}}
Περιγραφή σεναρίου: Στον παραπάνω κώδικα, ξεκινάμε πρώτα το δεδομένο url στο πρόγραμμα περιήγησης Chrome. Στη συνέχεια, κάντε κύλιση στη σελίδα οριζόντια έως ότου το αναφερόμενο στοιχείο είναι ορατό στην τρέχουσα σελίδα. Η μέθοδος Javascript scrollIntoView () μετακινεί τη σελίδα έως ότου το αναφερόμενο στοιχείο είναι σε πλήρη προβολή:
js.executeScript ("επιχειρήματα [0] .scrollIntoView ();", Element);
Ανάλυση εξόδου: Εδώ είναι η έξοδος όταν εκτελείτε το παραπάνω σενάριο.
Περίληψη
- Στο παραπάνω σεμινάριο, απεικονίζουμε την κύλιση της ιστοσελίδας μέσα από διαφορετικά σενάρια.
- Στο πρώτο σενάριο, δείξαμε την κύλιση προς τα κάτω στη σελίδα ανά pixel.
- Στο δεύτερο σενάριο, δείξαμε την κύλιση προς τα κάτω της σελίδας μέχρι το ορατό του στοιχείου.
- Στο τρίτο σενάριο, εμφανίστηκε η κύλιση προς τα κάτω της σελίδας στο κάτω μέρος της σελίδας.
- Στο τέταρτο σενάριο, απεικονίζεται η οριζόντια κύλιση στην ιστοσελίδα.