implementation our first webdriver script selenium webdriver tutorial 10
Στα δύο προηγούμενα μαθήματα, σας γνωστοποιήσαμε τη βασική αρχιτεκτονική και χαρακτηριστικά του WebDriver και το απαιτείται υποδομή για να ξεκινήσετε με το Selenium WebDriver . Υποθέτοντας ότι ίσως όλοι έχετε ρυθμίσει το σύστημα με όλα τα απαραίτητα βοηθητικά προγράμματα και πακέτα, θα προχωρήσουμε περαιτέρω με την εφαρμογή του πρώτου σεναρίου δοκιμής WebDriver.
Επομένως, προχωρώντας με το επακόλουθο Σεμινάριο Selenium WebDriver , θα δημιουργούσαμε σενάριο WebDriver. Θα διασκορπίζαμε επίσης το φως στο βασικό και συνήθως χρησιμοποιούμενο Εντολές WebDriver . Θα μάθαμε επίσης για το εντοπισμός στρατηγικών στοιχείων UI και την ένταξή τους στα δοκιμαστικά σενάρια. Θα μελετήσαμε επίσης τις εντολές Get Commands.
Τι θα μάθετε:
- Δημιουργία σεναρίου
- Περιήγηση κώδικα
- Εκτέλεση δοκιμής
- Εντοπισμός στοιχείων Web
- Τύποι εντοπιστών και η σύνταξή τους
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Δημιουργία σεναρίου
Για τη δημιουργία σεναρίων, θα χρησιμοποιούσαμε το έργο 'Learning_Selenium' που δημιουργήθηκε στο προηγούμενο σεμινάριο και το 'gmail.com' ως εφαρμογή υπό δοκιμή (AUT).
Σενάριο:
- Εκκινήστε το πρόγραμμα περιήγησης και ανοίξτε το 'Gmail.com'.
- Επαληθεύστε τον τίτλο της σελίδας και εκτυπώστε το αποτέλεσμα της επαλήθευσης.
- Εισαγάγετε το όνομα χρήστη και τον κωδικό πρόσβασης.
- Κάντε κλικ στο κουμπί Είσοδος.
- Κλείστε το πρόγραμμα περιήγησης ιστού.
Βήμα 1: Δημιουργήστε μια νέα τάξη java με το όνομα 'Gmail_Login' στο έργο 'Learning_Selenium'.
Βήμα 2: Αντιγράψτε και επικολλήστε τον παρακάτω κώδικα στην τάξη 'Gmail_Login.java'.
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class Gmail_Login { /** * @param args */ public static void main(String() args) { // objects and variables instantiation WebDriver driver = new FirefoxDriver(); String appUrl = 'https://accounts.google.com'; // launch the firefox browser and open the application url driver.get(appUrl); // maximize the browser window driver.manage().window().maximize(); // declare and initialize the variable to store the expected title of the webpage. String expectedTitle = ' Sign in - Google Accounts '; // fetch the title of the web page and save it into a string variable String actualTitle = driver.getTitle(); // compare the expected title of the page with the actual title of the page and print the result if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); } // enter a valid username in the email textbox WebElement username = driver.findElement(By.id('Email')); username.clear(); username.sendKeys('TestSelenium'); // enter a valid password in the password textbox WebElement password = driver.findElement(By.id('Passwd')); password.clear(); password.sendKeys('password123'); // click on the Sign in button WebElement SignInButton = driver.findElement(By.id('signIn')); SignInButton.click(); // close the web browser driver.close(); System.out.println('Test script executed successfully.'); // terminate the program System.exit(0); } }
Ο παραπάνω κωδικός είναι ισοδύναμος με το σενάριο κειμένου που παρουσιάστηκε νωρίτερα.
Περιήγηση κώδικα
Δηλώσεις εισαγωγής:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.By;
Πριν από την πραγματική δέσμη ενεργειών, πρέπει να εισαγάγουμε τα παραπάνω πακέτα:
εισαγωγή org.openqa.selenium.WebDriver - Παραπέμπει στη διεπαφή WebDriver που απαιτείται για τη δημιουργία νέου προγράμματος περιήγησης στο Web.
εισαγωγή org.openqa.selenium.firefox.FirefoxDriver - Παραπέμπει στην κλάση FirefoxDriver που απαιτείται δημιουργεί ένα συγκεκριμένο πρόγραμμα οδήγησης του Firefox στην παρουσία του προγράμματος περιήγησης που δημιουργήθηκε χρησιμοποιώντας τη διεπαφή WebDriver.
εισαγωγή org.openqa.selenium.WebElement - Αναφορές στην κλάση WebElement που απαιτείται για τη δημιουργία νέου στοιχείου ιστού.
εισαγωγή org.openqa.selenium. Από - Αναφορές στην κλάση ανά στην οποία καλείται ένας τύπος εντοπισμού.
Όσο και πότε θα αναπτυχθεί το έργο μας, είναι προφανές και λογικό ότι ίσως χρειαστεί να εισαγάγουμε πολλά άλλα πακέτα για πιο περίπλοκες και διακριτές λειτουργίες όπως χειρισμοί excel, συνδεσιμότητα βάσεων δεδομένων, καταγραφή, ισχυρισμοί κ.λπ.
ερωτήσεις και απαντήσεις συνέντευξης δοκιμής λογισμικού doc
Εγκατάσταση αντικειμένου
Πρόγραμμα οδήγησης WebDriver = νέο FirefoxDriver ();
Δημιουργούμε μια μεταβλητή αναφοράς για τη διεπαφή WebDriver και την εγκαθιστούμε χρησιμοποιώντας την κλάση FirefoxDriver. Ένα προεπιλεγμένο προφίλ Firefox θα ξεκινήσει, πράγμα που σημαίνει ότι δεν θα φορτωθούν επεκτάσεις και προσθήκες με την παρουσία του Firefox και ότι εκτελείται σε ασφαλή λειτουργία.
Εκκίνηση του προγράμματος περιήγησης στο Web
driver.get (appUrl);
ΠΡΟΣ ΤΗΝ παίρνω() Η μέθοδος καλείται στην παρουσία WebDriver για να ξεκινήσει μια νέα παρουσία προγράμματος περιήγησης ιστού. Η ακολουθία χαρακτήρων συμβολοσειράς πέρασε ως παράμετρος στο παίρνω() Η μέθοδος ανακατευθύνει την εκκίνηση του προγράμματος περιήγησης ιστού στη διεύθυνση URL της εφαρμογής.
Μεγιστοποίηση παραθύρου προγράμματος περιήγησης
driver.manage (). window (). μεγιστοποίηση ();
ο αυξάνω στον ανώτατο βαθμό() Η μέθοδος χρησιμοποιείται για τη μεγιστοποίηση του παραθύρου του προγράμματος περιήγησης αμέσως μετά την επανένταξή της στη διεύθυνση URL της εφαρμογής.
Λήψη του τίτλου της σελίδας
driver.getTitle ();
ο getTitle () χρησιμοποιείται μέθοδος για την ανάκτηση του τίτλου της τρέχουσας ιστοσελίδας. Έτσι, ο ανακτημένος τίτλος μπορεί να φορτωθεί σε μια μεταβλητή συμβολοσειράς.
Σύγκριση μεταξύ αναμενόμενων και πραγματικών τιμών:
προσθήκη τιμών σε έναν πίνακα java
if (expectedTitle.equals(actualTitle)) { System.out.println('Verification Successful - The correct title is displayed on the web page.'); } else { System.out.println('Verification Failed - An incorrect title is displayed on the web page.'); }
Ο παραπάνω κώδικας χρησιμοποιεί την κατασκευή υπό όρους java κατασκευές για να συγκρίνει την πραγματική τιμή και την αναμενόμενη τιμή. Με βάση το αποτέλεσμα που αποκτήθηκε, η δήλωση εκτύπωσης θα εκτελεστεί.
Instantiation WebElement
Όνομα χρήστη WebElement = driver.findElement (By.id ('Email'));
Στην παραπάνω δήλωση, δημιουργούμε την αναφορά του WebElement με τη βοήθεια του 'Driver.findElement (By.id (' Email '))'. Έτσι, το όνομα χρήστη μπορεί να χρησιμοποιηθεί για αναφορά στο πλαίσιο κειμένου Email στη διεπαφή χρήστη κάθε φορά που θέλουμε να εκτελέσουμε κάποια ενέργεια σε αυτό.
Εκκαθάριση εντολής
όνομα χρήστη.clear ();
Η μέθοδος clear () / εντολή χρησιμοποιείται για την εκκαθάριση της τιμής που υπάρχει στο πλαίσιο κειμένου εάν υπάρχει. Διαγράφει επίσης την προεπιλεγμένη τιμή placeholder.
εντολή sendKeys
username.sendKeys ('TestSelenium');
ο αποστολή κλειδιών () Η μέθοδος / εντολή χρησιμοποιείται για την εισαγωγή / πληκτρολόγηση της καθορισμένης τιμής (εντός παρενθέσεων) στο πλαίσιο κειμένου. Παρατηρήστε ότι το αποστολή κλειδιών () Η μέθοδος καλείται στο αντικείμενο WebElement που δημιουργήθηκε με τη βοήθεια της ιδιότητας στοιχείου που αντιστοιχεί στο στοιχείο UI.
Το παραπάνω μπλοκ κώδικα εισάγει τη συμβολοσειρά 'TestSelenium' μέσα στο πλαίσιο κειμένου Email στην εφαρμογή Gmail.
αποστολή είναι μια από τις πιο δημοφιλείς εντολές στα σενάρια WebDriver.
Κάντε κλικ στην εντολή
SignInButton.click ();
Αρέσει sendKeys (), κάντε κλικ στο () είναι μια άλλη υπερβολικά χρησιμοποιούμενη εντολή για αλληλεπίδραση με τα στοιχεία ιστού. Κάντε κλικ() Η εντολή / μέθοδος χρησιμοποιείται για να κάνετε κλικ στο στοιχείο ιστού που υπάρχει στην ιστοσελίδα.
Το παραπάνω μπλοκ κλικ κάνει κλικ στο κουμπί 'Σύνδεση' που υπάρχει στην εφαρμογή Gmail.
Σημειώσεις:
μετατροπέας youtube σε mp3 που λειτουργεί
- Σε αντίθεση με τη μέθοδο sendKeys (), οι μέθοδοι κλικ () δεν μπορούν ποτέ να παραμετροποιηθούν.
- Κατά καιρούς, κάνοντας κλικ σε ένα στοιχείο ιστού μπορεί να φορτώσει μια νέα σελίδα συνολικά. Έτσι, για να διατηρήσετε τέτοιες περιπτώσεις, η μέθοδος κλικ () κωδικοποιείται με τρόπο που να περιμένει έως ότου φορτωθεί η σελίδα.
Κλείστε το πρόγραμμα περιήγησης Web
driver.close ();
Το κλείσιμο () χρησιμοποιείται για να κλείσει το τρέχον παράθυρο του προγράμματος περιήγησης.
Τερματίστε το πρόγραμμα Java
System.exit (0);
Η μέθοδος Exit () τερματίζει δυναμικά το πρόγραμμα Java. Επομένως, θυμηθείτε να κλείσετε όλες τις παρουσίες του προγράμματος περιήγησης πριν τερματίσετε το πρόγραμμα Java.
Εκτέλεση δοκιμής
Το δοκιμαστικό σενάριο ή απλά το πρόγραμμα java μπορεί να εκτελεστεί με τους ακόλουθους τρόπους:
# 1. Κάτω από τη γραμμή μενού του Eclipse, υπάρχει ένα εικονίδιο για την εκτέλεση του δοκιμαστικού σεναρίου. Ανατρέξτε στην ακόλουθη εικόνα.
Σημειώστε ότι θα εκτελεστεί μόνο η τάξη που έχει επιλεγεί.
#δύο. Κάντε δεξί κλικ οπουδήποτε μέσα στην τάξη του προγράμματος επεξεργασίας, επιλέξτε 'Εκτέλεση ως' και κάντε κλικ στην 'Εφαρμογή Java'.
# 3. Μια άλλη συντόμευση για την εκτέλεση του δοκιμαστικού σεναρίου είναι - Πατήστε ctrl + F11.
Στο τέλος του κύκλου εκτέλεσης, η δήλωση εκτύπωσης 'Το σενάριο δοκιμής εκτελέστηκε με επιτυχία.' μπορείτε να βρείτε στην κονσόλα.
Εντοπισμός στοιχείων Web
Τα στοιχεία Web στο WebDriver μπορούν να εντοπιστούν και να ελεγχθούν με τον ίδιο τρόπο που κάναμε και στα προηγούμενα σεμινάρια του Selenium IDE. Το Selenium IDE και το Firebug μπορούν να χρησιμοποιηθούν για την επιθεώρηση του στοιχείου ιστού στο GUI. Συνιστάται ιδιαίτερα να χρησιμοποιείτε το Selenium IDE για να βρείτε τα στοιχεία του ιστού. Μόλις βρεθεί με επιτυχία το στοιχείο ιστού, αντιγράψτε και επικολλήστε την τιμή στόχου στον κώδικα WebDriver. Οι τύποι εντοπιστών και οι στρατηγικές εντοπισμού είναι σχεδόν οι ίδιοι εκτός από τη σύνταξη και την εφαρμογή τους.
Στο WebDriver, τα στοιχεία ιστού εντοπίζονται με τη βοήθεια των δυναμικών ανιχνευτών (findElement (By.locatorType ('locator value'))).
Δείγμα κώδικα:
driver.findElement (By.id ('Email'));
Τύποι εντοπιστών και η σύνταξή τους
Τύπος εντοπισμού | Σύνταξη | Περιγραφή |
---|---|---|
cssSelector | driver.findElement (By.cssSelector ('Επιλογέας CSS')) | Εντοπίστε κατά τιμή του ο επιλογέας CSS |
ταυτότητα | driver.findElement (By.id ('ID_of_Element')) | Εντοπίστε κατά τιμή του το χαρακτηριστικό 'id' |
όνομα τάξης | driver.findElement (Από.className ('Class_of_Element')) | Εντοπίστε κατά τιμή του το χαρακτηριστικό 'class' |
linkText | driver.findElement (By.linkText ('Κείμενο')) | Εντοπίστε ανά τιμή του κείμενο του υπερσυνδέσμου |
partialLinkText | driver.findElement (Από.partialLinkText ('PartialText')) | Εντοπίστε ανά τιμή του υπο-κείμενο του υπερσυνδέσμου |
όνομα | driver.findElement (Από όνομα ('Όνομα_τοιχείο')) | Εντοπίστε ανά τιμή του Χαρακτηριστικό 'name' |
xpath | driver.findElement (Από.xpath ('Xpath')) | Εντοπίστε ανά τιμή του xpath |
όνομα ετικέτας | driver.findElement (By.tagName ('εισαγωγή')) | Εντοπίστε κατά τιμή του το όνομα της ετικέτας |
συμπέρασμα
Σε αυτό το σεμινάριο, δημιουργήσαμε ένα σενάριο αυτοματισμού χρησιμοποιώντας το WebDriver και το Java. Συζητήσαμε επίσης τα διάφορα στοιχεία που αποτελούν σενάριο WebDriver.
Εδώ είναι οι βασικές αρχές αυτού του Σεληνίου WebDriver Tutorial:
- Πριν από την πραγματική δέσμη ενεργειών, πρέπει να εισαγάγουμε μερικά πακέτα για να μπορέσουμε να δημιουργήσουμε ένα σενάριο WebDriver.
- εισαγωγή openqa.selenium. Με;
- εισαγωγή openqa.selenium.WebDriver;
- εισαγωγή openqa.selenium.WebElement;
- εισαγωγή openqa.selenium.firefox.FirefoxDriver;
- ΠΡΟΣ ΤΗΝ παίρνω() μέθοδος που χρησιμοποιείται για την εκκίνηση μιας νέας παρουσίας προγράμματος περιήγησης ιστού. Η ακολουθία χαρακτήρων που πέρασε ως παράμετρος στη μέθοδο get () ανακατευθύνει την εκκίνηση του προγράμματος περιήγησης ιστού που ξεκίνησε στη διεύθυνση URL της εφαρμογής.
- ο αυξάνω στον ανώτατο βαθμό() χρησιμοποιείται μέθοδος για τη μεγιστοποίηση του παραθύρου του προγράμματος περιήγησης.
- ο Σαφή() χρησιμοποιείται μέθοδος για την εκκαθάριση της τιμής που υπάρχει στο πλαίσιο κειμένου, εάν υπάρχει.
- ο αποστολή κλειδιών () χρησιμοποιείται μέθοδος για την εισαγωγή της καθορισμένης τιμής στο πλαίσιο κειμένου.
- Κάντε κλικ() χρησιμοποιείται μέθοδος για να κάνετε κλικ στο στοιχείο ιστού που υπάρχει στην ιστοσελίδα.
- Στο WebDriver, τα στοιχεία ιστού μπορούν να εντοπιστούν χρησιμοποιώντας δυναμικούς ανιχνευτές.
- Τα ακόλουθα είναι τα διαθέσιμα είδη εντοπισμού:
- ταυτότητα
- όνομα τάξης
- όνομα
- xpath
- cssSelector
- linkText
- partialLinkText
- όνομα ετικέτας
Προχωρώντας, στο επόμενο σεμινάριο, θα στρέψαμε την εστίασή μας σε ένα πλαίσιο που βοηθά στη δοκιμή αυτοματισμού γνωστή ως TestNG. Θα έχουμε μια λεπτομερή μελέτη για τα διάφορα είδη των σχολιασμών που παρέχονται από το πλαίσιο.
Επόμενο σεμινάριο # 11 : Πριν βυθίσουμε βαθιά στα Πλαίσια, θα δούμε λεπτομέρειες για το JUnit - ένα εργαλείο δοκιμής μονάδας ανοιχτού κώδικα. Οι περισσότεροι από τους προγραμματιστές χρησιμοποιούν το JUnit καθώς είναι εύκολο και δεν χρειάζεται πολλή προσπάθεια για δοκιμή. Αυτό το σεμινάριο θα δώσει μια εικόνα για το JUnit και τη χρήση του σεναρίου σεληνίου.
Μια παρατήρηση για τους αναγνώστες: Ενώ το επόμενο σεμινάριό μας για τη σειρά Selenium βρίσκεται σε λειτουργία επεξεργασίας, οι αναγνώστες μπορούν να αρχίσουν να δημιουργούν τα δικά τους βασικά σενάρια WebDriver. Για πιο προχωρημένα σενάρια και έννοιες, θα έχουμε διάφορα άλλα σεμινάρια Selenium WebDriver σε αυτήν τη σειρά.
Ενημερώστε μας στα σχόλια εάν έχετε κάποιο πρόβλημα κατά τη δημιουργία ή την εκτέλεση των σεναρίων WebDriver.
Συνιστώμενη ανάγνωση
- Εισαγωγή στο Selenium WebDriver - Selenium Tutorial # 8
- Cucumber Selenium Tutorial: Αγγούρι Java Selenium WebDriver Integration
- WebDriver Ολόκληρη εγκατάσταση και εγκατάσταση με Eclipse - Selenium Tutorial # 9
- Ελέγξτε την ορατότητα των στοιχείων Web χρησιμοποιώντας διάφορους τύπους εντολών WebDriver - Selenium Tutorial # 14
- Αποτελεσματικά σενάρια Selenium και Αντιμετώπιση προβλημάτων - Σελήνιο Σεμινάριο # 27
- Τρόπος χειρισμού ειδοποιήσεων / αναδυόμενων παραθύρων στο Selenium WebDriver - Selenium Tutorial # 16
- Αποσφαλμάτωση σεναρίων σεληνίου με αρχεία καταγραφής (Tutorial Log4j) - Σεμινάριο σεμινάριο # 26
- Εισαγωγή στο JUnit Framework και τη χρήση του στο Σελήνιο Σενάριο - Σελήνιο Tutorial # 11