Κρίσιμες μέθοδοι 12 javascriptexecutor στο σελήνιο

Σε αυτό το τμήμα του σεμιναρίου θα συζητήσουμε λεπτομερώς το javascriptexecutor στο σελήνιο και όλες οι πιθανές λειτουργίες θα μπορούσαν να εκτελεστούν χρησιμοποιώντας το javascriptexecutor στο σελήνιο από την άποψη του WebAutomation. 

Τι είναι το javascriptexecutor στο σελήνιο 

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

JavaScriptExecutor στο Σελήνιο
Εκτελεστής JavaScript στο Σελήνιο

Τύποι σεναρίων Java στο Σελήνιο και οι μέθοδοι του: 

Υπάρχουν δύο διαφορετικά είδη μεθόδων JavaScript: 

  • executeAsyncScript
  • εκτελεστικό σενάριο

Διαφορά μεταξύ 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) driver;
   jscriptExecutor.executeScript("arguments[0].click();", element);
}

Selenium javascript εισάγετε κείμενο

Μπορούμε να εκτελέσουμε λειτουργία sendkeys στο Selenium με λειτουργία Javascript στην παρακάτω προσέγγιση: 

public void jsSendKeys() {
   JavascriptExecutor jscriptExecutor = (JavascriptExecutor) driver;
   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) driver;
   jscriptExecutor.executeScript("document.getElementById('id_of_the_element').checked=false;");
}

Δημιουργία ειδοποιήσεων javascript σεληνίου

Για να δημιουργήσουμε την ειδοποίηση πρέπει να χρησιμοποιήσουμε "ειδοποίηση ("ALERT_TEXT_TO_BE_SHOWN");"Κατά την εκτέλεση της λειτουργίας με Javascript.

public void jsAlertGeneration() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   jscriptExecutor.executeScript("alert('ALERT_TEXT_TO_BE_SHOWN');");
}

Σελίδα ανανέωσης javascript σεληνίου

Για να ανανεώσουμε μια ιστοσελίδα στο Selenium με Javascript Executor μπορούμε να χρησιμοποιήσουμε history.go (0).

public void jsRefreshPage() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   jscriptExecutor.executeScript("history.go(0)");
}

Selenium javascript για λήψη εσωτερικού κειμένου της ιστοσελίδας

Για τη λήψη ολόκληρου του εσωτερικού κειμένου μπορούμε να χρησιμοποιήσουμε document.documentElement.innerText;

public String jsFetchInnerText() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   return String.valueOf(jscriptExecutor.executeScript("return document.documentElement.innerText;"));
}

Το σελήνιο javascript παίρνει τον τίτλο της σελίδας 

Για να επιστρέψουμε τον τίτλο μιας σελίδας που μπορούμε να χρησιμοποιήσουμε τίτλος εγγράφου; μαζί με το Javascript Executor στο Σελήνιο.

public String jsWebPageTitle() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   return String.valueOf(jscriptExecutor.executeScript("return document.title;"));
}

Selenium javascript για να αποκτήσετε το Domain 

Για να τραβήξουμε το όνομα τομέα που μπορούμε να χρησιμοποιήσουμε document.domain;

public String jsFetchDomain() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   return String.valueOf(jscriptExecutor.executeScript("return document.domain;"));
}

Selenium javascript για να λάβετε τη διεύθυνση URL μιας ιστοσελίδας

 

Για να ανακτήσουμε τη διεύθυνση URL χρησιμοποιώντας το JavaScript Executor με το Selenium θα μπορούσαμε να χρησιμοποιήσουμε document.URL;

public String jsFetchURL() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   return String.valueOf(jscriptExecutor.executeScript("return document.URL;"));
}

Selenium javascript Κύλιση μιας ιστοσελίδας 

Μπορούμε να κάνουμε κύλιση με πολλούς τρόπους χρησιμοποιώντας Javascript, δύο από τις προσεγγίσεις εμφανίζονται παρακάτω στο απόσπασμα κώδικα όπως:

public void scrollIntoView(By locator) {

   try {
       JavascriptExecutor executor = (JavascriptExecutor) driver;
       WebElement element = driver.findElement(locator);
       executor.executeScript("arguments[0].scrollIntoView(true);", element);
       BASE_LOGGER
               .info("scrollIntoView operation has been performed for the locator : " + String.valueOf(element));
   } catch (Exception e) {
       String exceptionData = e.getCause().getMessage();
       BASE_LOGGER.error("Error encountered i.e : " + exceptionData
               + " while performing scrollIntoView on the element : " + locator);
   }
}

Επίσης μπορούμε να καθορίσουμε την τιμή κύλισης (ποσό κύλισης) όπως αυτή παρακάτω:

public void jsScroll() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   jscriptExecutor.executeScript("window.scrollBy(0,1000)");
}

Selenium javascript για πλοήγηση σε διαφορετική σελίδα

Μπορούμε να πλοηγηθούμε σε μια διαφορετική ιστοσελίδα / οθόνη παρέχοντας απευθείας την τοποθεσία url εντός του javascriptexecutor στο Σελήνιο. 

public void pageNavigationWithJS() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   jscriptExecutor.executeScript("window.location = 'PageURL_To_Navigate'");
}

Selenium javascript Για να βρείτε και να κάνετε κλικ σε ένα κρυφό στοιχείο

Θα μπορούσαμε να κάνουμε απευθείας κλικ στο κρυφό στοιχείο με το Javascript από το backend ακόμα κι αν το στοιχείο δεν είναι ορατό, εδώ είναι το απόσπασμα κώδικα για το ίδιο:

public void clickOnHiddenElement() {
   JavascriptExecutor jscriptExecutor= (JavascriptExecutor) driver;
   WebElement hiddenElement=driver.findElement(By.id("ID_OF_ELEMENT"));
   jscriptExecutor.executeScript("arguments[0].click();", hiddenElement);
}

Συμπέρασμα:

Έχουμε συζητήσει μέχρι τώρα για τη Javascript και διάφορες λειτουργίες που πρέπει να εκτελούνται χρησιμοποιώντας εκτελεστή Javascript στο Selenium, σας ενθαρρύνουμε να περάσετε από το πλήρες σεμινάριο Selenium για να έχετε καλύτερη πρόσφυση σε όλες τις διαφορετικές πτυχές του ίδιου. Στα επερχόμενα τμήματα της σειράς Tutorial θα συζητήσουμε περισσότερα για το Αυτοματισμός σεληνίου Πλαίσιο και άλλες τελευταίες τεχνολογίες για συνεργασία με το Selenium και σπάστε οποιαδήποτε προηγμένη συνέντευξη στο Σελήνιο μπορείτε να περάσετε εδώ.

Σχετικά με την Debarghya

Myself Debarghya Roy, είμαι ένας μηχανικός ARCHITECT που συνεργάζεται με την εταιρεία Fortune 5 και έναν συνεισφέροντα ανοιχτού κώδικα, έχοντας περίπου 12 χρόνια εμπειρίας / εμπειρίας σε διάφορες τεχνολογίες.
Έχω εργαστεί με διάφορες τεχνολογίες, όπως Java, C #, Python, Groovy, UI Automation (Selenium), Mobile Automation (Appium), API / Backend Automation, Performance Engineering (JMeter, Locust), Security Automation (MobSF, OwAsp, Kali Linux) , Astra, ZAP κ.λπ.), RPA, Αυτοματισμός Μηχανικής Διαδικασίας, Αυτοματισμός Mainframe, Ανάπτυξη Back End με SpringBoot, Kafka, Redis, RabitMQ, ELK stack, GrayLog, Jenkins και επίσης έχοντας εμπειρία σε Cloud Technologies, DevOps κ.λπ.
Ζω στο Μπανγκαλόρ της Ινδίας με τη γυναίκα μου και έχω πάθος για το Blogging, τη μουσική, την κιθάρα και η Φιλοσοφία της ζωής μου είναι η Εκπαίδευση για Όλους που γέννησε το LambdaGeeks. Ας συνδεθούμε μέσω συνδέσμου - https://www.linkedin.com/in/debarghya-roy/

Αφήστε ένα σχόλιο

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται *

Lambda Geeks