Ερωτήσεις Συνέντευξης Selenium

Από Aaron Cao · Ενημερώθηκε

Ερωτήσεις Συνέντευξης Selenium
Οι συνεντεύξεις Selenium επικεντρώνονται σε wait, locators, το Page Object Model και γιατί τα tests γίνονται flaky. Περιμένετε να εξηγήσετε implicit έναντι explicit wait, να επιλέξετε CSS αντί για XPath και να το υπερασπιστείτε, να λύσετε ένα σφάλμα stale element και να περιγράψετε πώς τρέχει παράλληλα το framework σας.

Οι συνεντεύξεις Selenium επικεντρώνονται σε wait, locators, το Page Object Model και γιατί τα tests γίνονται flaky. Περιμένετε να εξηγήσετε implicit έναντι explicit wait, να επιλέξετε CSS αντί για XPath και να το υπερασπιστείτε, να λύσετε ένα σφάλμα stale element και να περιγράψετε πώς τρέχει παράλληλα το framework σας.

Τι ρωτούν οι συνεντευκτές για wait και locators;

Έχετε γράψει tests που περνούν τοπικά αλλά αποτυγχάνουν στο pipeline, και υποψιάζεστε ότι η απάντηση αφορά wait χωρίς να μπορείτε να το διατυπώσετε καθαρά. Οι συνεντευκτές το γνωρίζουν, γι' αυτό τα wait ανοίγουν τους περισσότερους γύρους Selenium. Αυτή η ενότητα δείχνει πώς ακούγεται μια πλήρης απάντηση.

  • Implicit έναντι explicit wait. Το implicit wait είναι μια καθολική ρύθμιση που ελέγχει την παρουσία του στοιχείου σε κάθε αναζήτηση. Το explicit wait στοχεύει ένα στοιχείο και μία συνθήκη, όπως clickable ή visible. Το explicit προτιμάται γιατί δηλώνει ξεκάθαρα τι περιμένετε.
  • Γιατί δεν πρέπει να συνδυάζονται; Ο συνδυασμός των δύο μπορεί να αθροίσει timeouts με τρόπο δύσκολο να προβλεφθεί, γι' αυτό οι περισσότερες ομάδες βάζουν το implicit wait στο μηδέν και χρησιμοποιούν explicit wait παντού.
  • Τι είναι το fluent wait; Ένα explicit wait με ρυθμιζόμενο διάστημα polling και αγνοημένους τύπους exception.
  • Γιατί είναι λάθος το Thread.sleep; Είναι ανεξάρτητο συνθήκης. Επιβραδύνει ένα test που θα περνούσε και πάλι αφήνει ένα αργό test να αποτύχει.
  • CSS selector ή XPath; Προτιμήστε ένα σταθερό attribute αναγνώρισης test, μετά CSS για ευαναγνωσία. Το XPath κερδίζει τη θέση του όταν πρέπει να ανέβετε σε γονικό στοιχείο ή να ταιριάξετε βάσει κειμένου.
  • Τι κάνει έναν locator εύθραυστο; Αυτόματα παραγόμενα ονόματα class, απόλυτο XPath και επιλογή βάσει index. Πείτε τι θα ζητούσατε από έναν developer να προσθέσει αντ' αυτού.

Οι συνεντευκτές ακούν τον λόγο πίσω από κάθε επιλογή. Το να αναφέρετε μια προτίμηση χωρίς το κόστος της ακούγεται σαν απομνημονευμένη απάντηση.

Πώς απαντάτε στις ερωτήσεις για exceptions και αστάθεια;

Τα flaky tests είναι το πραγματικό θέμα των περισσότερων senior συνεντεύξεων αυτοματισμού, γιατί ένα suite που κανείς δεν εμπιστεύεται είναι χειρότερο από την απουσία suite.

  • Τι προκαλεί το StaleElementReferenceException; Η αναφορά στοιχείου δείχνει σε έναν κόμβο που δεν είναι πια συνδεδεμένος, συνήθως επειδή το framework ξανα-έκανε render εκείνο το τμήμα της σελίδας. Ξαναβρείτε το στοιχείο αντί να επαναχρησιμοποιήσετε την αποθηκευμένη αναφορά.
  • Τι γίνεται με το ElementNotInteractableException; Το στοιχείο υπάρχει αλλά δεν μπορεί να δεχτεί ενέργεια: κρυφό, disabled, καλυμμένο από overlay, ή εκτός οθόνης.
  • Πώς χειρίζεστε το NoSuchElementException; Ξεχωρίστε ένα πρόβλημα timing από ένα στοιχείο που πραγματικά λείπει, και μην το καλύπτετε με μεγαλύτερο sleep.
  • Γιατί τα tests αποτυγχάνουν μόνο στο pipeline; Διαφορετικό μέγεθος viewport, πιο αργό περιβάλλον, δεδομένα test που λείπουν, animations που τελειώνουν αργότερα, και παράλληλα tests που συγκρούονται σε κοινή κατάσταση.
  • Πώς διορθώνετε ένα flaky test; Διαγνώστε πρώτα την κατηγορία, μετά διορθώστε την αιτία. Το auto-retry κρύβει αποτυχίες και είναι έσχατη λύση που πρέπει να ονομάσετε ως τέτοια.
  • Πώς χειρίζεστε frames, νέα παράθυρα και alerts; Αλλάζοντας context ρητά, και επιστρέφοντας σε αυτό μετά.

Έναν QA engineer που έδινε συνέντευξη για ρόλο αυτοματισμού mid-level τον ρώτησαν γιατί ένα suite απέτυχε δύο φορές την εβδομάδα χωρίς καμία αλλαγή κώδικα. Η απάντηση που πέτυχε δεν ήταν λεπτομέρεια του API του Selenium, αλλά ότι τα tests μοιράζονταν έναν μοναδικό seeded λογαριασμό και έμπαιναν σε race μεταξύ τους. Οι συνεντευκτές ανταμείβουν αυτή τη σειρά διάγνωσης: πρώτα περιβάλλον και δεδομένα, μετά το API.

Περισσότερες τράπεζες ερωτήσεων ανά ρόλο και εργαλείο βρίσκονται στο interview questions by role.

Ποιες ερωτήσεις framework και αρχιτεκτονικής προκύπτουν;

Πέρα από το API, το panel θέλει να μάθει αν μπορείτε να έχετε την ευθύνη ενός suite. Αυτές οι ερωτήσεις βαραίνουν περισσότερο για senior ρόλους.

  • Εξηγήστε το Page Object Model. Οι page classes εκθέτουν ενέργειες και κρύβουν locators, ώστε μια αλλαγή UI να αγγίζει ένα μόνο αρχείο. Πείτε ποιο πρόβλημα λύνει· το να περιγράψετε μόνο τη δομή φακέλων χάνει την ουσία.
  • Τι μπορεί να πάει στραβά με τα Page Objects; Μεγαλώνουν σε classes χιλιάδων γραμμών και αρχίζουν να κάνουν assert μέσα σε page methods. Τα assertions ανήκουν στα tests.
  • Πώς τρέχει το framework σας τα tests παράλληλα; Thread-safe διαχείριση driver ώστε τα instances να μην μοιράζονται μεταξύ threads, συν ανεξάρτητα δεδομένα test για κάθε test.
  • Σε τι χρησιμεύει το Selenium Grid; Στην κατανομή tests σε μηχανές και εκδόσεις browser, με ένα hub και nodes, ή έναν πάροχο cloud που παίζει τον ίδιο ρόλο.
  • Τι άλλαξε στο Selenium 4; Το πρωτόκολλο W3C WebDriver έγινε το πρότυπο και το παλιό JSON wire protocol αφαιρέθηκε, ήρθαν οι relative locators, και εκτέθηκε πρόσβαση στο Chrome DevTools Protocol.
  • Πότε δεν θα χρησιμοποιούσατε το Selenium; Έλεγχοι σε επίπεδο API, λογική ελέγξιμη με unit test, και οτιδήποτε εκτός browser. Η γνώση αυτού του ορίου είναι ένδειξη senior.
  • Πώς αποφασίζετε τι θα αυτοματοποιήσετε; Σταθερά, υψηλής αξίας, επαναλαμβανόμενα μονοπάτια. Όχι τα πάντα, και όχι μια οθόνη που ακόμα επανασχεδιάζεται.

Πώς πρέπει να εξασκηθείτε πριν τη συνέντευξη;

Οι απαντήσεις Selenium είναι ασυνήθιστα εύκολο να τις ξέρετε και δύσκολο να τις πείτε. Η ερώτηση για το wait ειδικότερα έχει διμερή απάντηση, τον ορισμό και τον λόγο, και οι υποψήφιοι που την έχουν μόνο διαβάσει δίνουν το πρώτο μισό και χάνονται.

Πάρτε τις πέντε ερωτήσεις εδώ που θα θέλατε λιγότερο να αντιμετωπίσετε και απαντήστε στην καθεμία δυνατά μέσα σε ενενήντα δευτερόλεπτα χωρίς κανέναν editor ανοιχτό. Μετά ζητήστε από κάποιον να κάνει την ερώτηση συνέχειας, που σχεδόν πάντα είναι γιατί. Το να τρέχετε τα ίδια prompts απέναντι σε έναν AI συνεντευκτή που αντιστέκεται είναι πιο κοντά σε πραγματικό γύρο από το να ξαναδιαβάζετε μια λίστα, και ακριβώς γι' αυτό υπάρχει η λειτουργία mock interview.

Ο Aaron Cao, ιδρυτής της SubcueAI, έχτισε την εξάσκηση γύρω από αυτό το κενό ομιλίας αντί γύρω από την παροχή περισσότερων ερωτήσεων. Σε μια ζωντανή συνέντευξη, η desktop εφαρμογή και το Side Panel της επέκτασης browser μπορούν να αναδείξουν δομή καθώς μιλά ο συνεντευκτής, κάτι που βοηθά περισσότερο σε υλικό που έχετε ήδη εξασκήσει. Τι κάνει το προϊόν, και τα όρια που δεν ξεπερνά, περιγράφονται στη σελίδα security.

Συχνές ερωτήσεις

Αξίζει ακόμα να μάθω Selenium με το Playwright και το Cypress να υπάρχουν;

Ναι, για τις πολλές ομάδες με μεγάλα υπάρχοντα suites Selenium, και οι έννοιες μεταφέρονται απευθείας. Οι συνεντευκτές ζητούν όλο και πιο συχνά να τα συγκρίνετε, οπότε να είστε έτοιμοι να αναφέρετε το auto-waiting και μια αρχιτεκτονική ενός process ως λόγους που οι ομάδες επιλέγουν τα νεότερα εργαλεία.

Ποια γλώσσα πρέπει να χρησιμοποιήσω σε μια συνέντευξη Selenium;

Αυτή που αναφέρεται στην αγγελία εργασίας, συνήθως Java ή Python. Το API είναι σχεδόν πανομοιότυπο σε όλα τα bindings, οπότε η γλώσσα έχει σημασία κυρίως για τις ερωτήσεις framework, τον test runner, τη διαχείριση εξαρτήσεων και το πώς δομείτε το project.

Οι συνεντεύξεις Selenium περιλαμβάνουν live coding;

Συχνά ναι. Μια συνηθισμένη άσκηση είναι η αυτοματοποίηση ενός login ή μιας αναζήτησης σε δημόσιο site, με τον συνεντευκτή να παρακολουθεί τις επιλογές locator σας και αν καταφεύγετε σε sleep. Εξηγήστε φωναχτά γιατί επιλέγετε κάθε locator καθώς προχωράτε.

Μπορεί το Selenium να χειριστεί CAPTCHA ή διαλόγους μεταφόρτωσης αρχείων;

Το CAPTCHA είναι σχεδιασμένο ακριβώς για να σταματά τον αυτοματισμό, οπότε η αποδεκτή απάντηση είναι η απενεργοποίησή του σε περιβάλλοντα test ή η χρήση ενός bypass token. Οι native διάλογοι αρχείων του OS βρίσκονται εκτός browser, οπότε στέλνετε τη διαδρομή απευθείας στο στοιχείο input.

Μπορεί ένας AI βοηθός να με βοηθήσει σε μια ζωντανή συνέντευξη αυτοματισμού;

Μπορεί να αναδείξει δομή καθώς μιλά ο συνεντευκτής, κάτι που λειτουργεί καλύτερα σε υλικό που ήδη γνωρίζετε. Δεν αντικαθιστά την εξάσκηση, και το screen sharing, οι ηχογραφήσεις, οι αξιολογήσεις με proctoring και οι συσκευές διαχειριζόμενες από εταιρεία παραμένουν εκτός πεδίου.

Σχετικές ερωτήσεις

← Περισσότερα για Ερωτήσεις συνέντευξης ανά ρόλο & θέμα