Σε αυτό το τμήμα του σεμιναρίου θα συζητήσουμε λεπτομερώς το javascriptexecutor στο σελήνιο και όλες οι πιθανές λειτουργίες θα μπορούσαν να εκτελεστούν χρησιμοποιώντας το javascriptexecutor στο σελήνιο από την άποψη του WebAutomation.
Τι είναι το javascriptexecutor στο σελήνιο
Στη βιβλιοθήκη Selenium, το javascriptexecutor είναι μια διεπαφή που υλοποιείται σε διάφορες κατηγορίες, όπως ChromeDriver, FirefoxDriver, RemoteWebDriver, EdgeDriver, EventFiringWebDriver, InternetExplorerDriver κ.λπ. για την υποστήριξη διαφορετικών λειτουργιών που σχετίζονται με Javascript προς τα αντίστοιχα προγράμματα οδήγησης προγράμματος περιήγησης.

Τύποι σεναρίων Java στο Σελήνιο και οι μέθοδοι του:
Υπάρχουν δύο διαφορετικά είδη μεθόδων JavaScript:
Διαφορά μεταξύ executeAsyncScript έναντι executeScript:
executeAsyncScript : Αυτός ο τύπος εκτελέστης java script χρησιμοποιείται για την εκτέλεση ασύγχρονου κώδικα JavaScript στο πλαίσιο του τρέχοντος επιλεγμένου πλαισίου ή παραθύρου.
εκτελεστικό σενάριο: Αυτός ο τύπος του Java scriptexecutor που βασικά εκτελεί σύγχρονο κώδικα JavaScript στο πλαίσιο του τρέχοντος επιλεγμένου πλαισίου ή παραθύρου.
Λειτουργία που θα μπορούσε να εκτελεστεί χρησιμοποιώντας εκτελεστή javascript στο σελήνιο:
Υπάρχουν διάφορες κρίσιμες λειτουργίες Web που επιτυγχάνονται εκτελώντας το Javascript στο πρόγραμμα οδήγησης του προγράμματος περιήγησης για την επίτευξη συγκεκριμένης λειτουργίας όπως:
Ας συζητήσουμε όλη τη διαδικασία που αναφέρεται παραπάνω:
Κάντε κλικ στο σενάριο javascript
Μπορούμε να εκτελέσουμε λειτουργία κλικ στο Σελήνιο με λειτουργία Javascript στην παρακάτω προσέγγιση:
public void jsClick() { WebElement element = driver.findElement(By.xpath("Xpath_OF_Element")); JavascriptExecutor jscriptExecutor = (JavascriptExecutor) πρόγραμμα οδήγησης; jscriptExecutor.executeScript("arguments[0].click();", στοιχείο); }
Selenium javascript εισάγετε κείμενο
Μπορούμε να εκτελέσουμε λειτουργία sendkeys στο Selenium με λειτουργία Javascript στην παρακάτω προσέγγιση:
public void jsSendKeys() { JavascriptExecutor jscriptExecutor = (JavascriptExecutor) πρόγραμμα οδήγησης; jscriptExecutor.executeScript("document.getElementById('id_of_the_element').value='ENTER_THE_TEXT_HERE';"); }
Πλαίσιο ελέγχου Selenium javascript
Θα μπορούσαμε να χρησιμοποιήσουμε την επιλογή τετραγωνισμένος= true ή false ανάλογα με τις περιπτώσεις χρήσης για την εκτέλεση των λειτουργιών CheckBox με Javascript στο Selenium.
public void jsCheckBoxOps() { JavascriptExecutor jscriptExecutor = (JavascriptExecutor) πρόγραμμα οδήγησης; jscriptExecutor.executeScript("document.getElementById('id_of_the_element').checked=false;"); }
Δημιουργία ειδοποιήσεων javascript σεληνίου
Για να δημιουργήσουμε την ειδοποίηση πρέπει να χρησιμοποιήσουμε "ειδοποίηση ("ALERT_TEXT_TO_BE_SHOWN");"Κατά την εκτέλεση της λειτουργίας με Javascript.
public void jsAlertGeneration() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) πρόγραμμα οδήγησης; jscriptExecutor.executeScript("alert('ALERT_TEXT_TO_BE_SHOWN');"); }
Σελίδα ανανέωσης javascript σεληνίου
Για να ανανεώσουμε μια ιστοσελίδα στο Selenium με Javascript Executor μπορούμε να χρησιμοποιήσουμε history.go (0).
public void jsRefreshPage() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) πρόγραμμα οδήγησης; jscriptExecutor.executeScript("history.go(0)"); }
Selenium javascript για λήψη εσωτερικού κειμένου της ιστοσελίδας
Για τη λήψη ολόκληρου του εσωτερικού κειμένου μπορούμε να χρησιμοποιήσουμε document.documentElement.innerText;
public String jsFetchInnerText() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) πρόγραμμα οδήγησης; return String.valueOf(jscriptExecutor.executeScript("return document.documentElement.innerText;")); }
Το σελήνιο javascript παίρνει τον τίτλο της σελίδας
Για να επιστρέψουμε τον τίτλο μιας σελίδας που μπορούμε να χρησιμοποιήσουμε τίτλος εγγράφου; μαζί με το Javascript Executor στο Σελήνιο.
public String jsWebPageTitle() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) πρόγραμμα οδήγησης; return String.valueOf(jscriptExecutor.executeScript("return document.title;")); }
Selenium javascript για να αποκτήσετε το Domain
Για να τραβήξουμε το όνομα τομέα που μπορούμε να χρησιμοποιήσουμε document.domain;
public String jsFetchDomain() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) πρόγραμμα οδήγησης; return String.valueOf(jscriptExecutor.executeScript("return document.domain;")); }
Selenium javascript για να λάβετε τη διεύθυνση URL μιας ιστοσελίδας
Για να ανακτήσουμε τη διεύθυνση URL χρησιμοποιώντας το JavaScript Executor με το Selenium θα μπορούσαμε να χρησιμοποιήσουμε document.URL;
public String jsFetchURL() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) πρόγραμμα οδήγησης; return String.valueOf(jscriptExecutor.executeScript("return document.URL;")); }
Selenium javascript Κύλιση μιας ιστοσελίδας
Μπορούμε να κάνουμε κύλιση με πολλούς τρόπους χρησιμοποιώντας Javascript, δύο από τις προσεγγίσεις εμφανίζονται παρακάτω στο απόσπασμα κώδικα όπως:
public void scrollIntoView(By locator) { try { JavascriptExecutor executor = (JavascriptExecutor) driver; Στοιχείο WebElement = driver.findElement(locator); executor.executeScript("arguments[0].scrollIntoView(true);", στοιχείο); BASE_LOGGER .info("Έχει πραγματοποιηθεί η λειτουργία scrollIntoView για τον εντοπιστή : " + String.valueOf(element)); } catch (Exception e) { String exclusiveData = e.getCause().getMessage(); BASE_LOGGER.error("Παρουσιάστηκε σφάλμα π.χ. : " +exceptionData + " κατά την εκτέλεση scrollIntoView στο στοιχείο : " + locator); } }
Επίσης μπορούμε να καθορίσουμε την τιμή κύλισης (ποσό κύλισης) όπως αυτή παρακάτω:
public void jsScroll() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) πρόγραμμα οδήγησης; jscriptExecutor.executeScript("window.scrollBy(0,1000)"); }
Selenium javascript για πλοήγηση σε διαφορετική σελίδα
Μπορούμε να πλοηγηθούμε σε μια διαφορετική ιστοσελίδα / οθόνη παρέχοντας απευθείας την τοποθεσία url εντός του javascriptexecutor στο Σελήνιο.
public void pageNavigationWithJS() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) πρόγραμμα οδήγησης; jscriptExecutor.executeScript("window.location = 'PageURL_To_Navigate'"); }
Selenium javascript Για να βρείτε και να κάνετε κλικ σε ένα κρυφό στοιχείο
Θα μπορούσαμε να κάνουμε απευθείας κλικ στο κρυφό στοιχείο με το Javascript από το backend ακόμα κι αν το στοιχείο δεν είναι ορατό, εδώ είναι το απόσπασμα κώδικα για το ίδιο:
public void clickOnHiddenElement() { JavascriptExecutor jscriptExecutor= (JavascriptExecutor) πρόγραμμα οδήγησης; WebElement hiddenElement=driver.findElement(By.id("ID_OF_ELEMENT")); jscriptExecutor.executeScript("arguments[0].click();", hiddenElement); }
Συμπέρασμα:
Έχουμε συζητήσει μέχρι τώρα για τη Javascript και διάφορες λειτουργίες που πρέπει να εκτελούνται χρησιμοποιώντας εκτελεστή Javascript στο Selenium, σας ενθαρρύνουμε να περάσετε από το πλήρες σεμινάριο Selenium για να έχετε καλύτερη πρόσφυση σε όλες τις διαφορετικές πτυχές του ίδιου. Στα επερχόμενα τμήματα της σειράς Tutorial θα συζητήσουμε περισσότερα για το Αυτοματισμός σεληνίου Πλαίσιο και άλλες τελευταίες τεχνολογίες για συνεργασία με το Selenium και σπάστε οποιαδήποτε προηγμένη συνέντευξη στο Σελήνιο μπορείτε να περάσετε εδώ.