Ξεπερνώντας αποτυχίες δοκιμής Chrome σε αγωγούς CI/CD
Εκτέλεση δοκιμών σεληνίου σε ακέφαλο Chrome επί Ενέργειες GitHub πρέπει να είναι απρόσκοπτη. Ωστόσο, πολλοί προγραμματιστές αντιμετωπίζουν το απογοητευτικό σφάλμα "Το αρχείο DevToolsActivePort δεν υπάρχει". Αυτό συμβαίνει όταν το Chrome, για τον ένα ή τον άλλο λόγο, αποτυγχάνει να ξεκινήσει σωστά στο περιβάλλον CI.
Το μήνυμα σφάλματος συνήθως σηματοδοτεί ότι το Chrome διακόπτεται απροσδόκητα, το οποίο είναι συχνά αποτέλεσμα αναντιστοιχίας Χρώμιο και ChromeDriver εκδόσεις ή εσφαλμένες επιλογές στη ρύθμιση δοκιμής. Όπως πολλοί προγραμματιστές, έχω αντιμετωπίσει αυτήν την πρόκληση, ιδιαίτερα κατά την ανάπτυξη αυτοματοποιημένων δοκιμών σε συνεχής ολοκλήρωση περιβάλλο.
Σε αυτήν τη ρύθμιση, η παραμικρή εσφαλμένη ευθυγράμμιση, όπως μια αναντιστοιχία έκδοσης του ChromeDriver, μπορεί να σταματήσει την εκτέλεση της δοκιμής, κοστίζοντας πολύτιμο χρόνο και πόρους. Ευτυχώς, η κατανόηση των υποκείμενων ζητημάτων καθιστά την επίλυσή του πολύ πιο εύκολη 🛠️.
Σε αυτόν τον οδηγό, θα εξετάσουμε τα πρακτικά βήματα για την πρόληψη και την αντιμετώπιση αυτού του συνηθισμένου σφάλματος. Από τις λεπτομέρειες εγκατάστασης του Chrome έως τη σωστή προετοιμασία του προγράμματος οδήγησης, θα βρείτε μια διαδικασία βήμα προς βήμα για να διασφαλίσετε την ομαλή δοκιμή κάθε φορά. Ας αντιμετωπίσουμε αυτό το ζήτημα και ας επανέλθουμε στις δοκιμές σας!
Εντολή | Παράδειγμα χρήσης |
---|---|
CHROME_VERSION="117.0.5938.62" | Ορίζει μια συγκεκριμένη έκδοση του Chrome, απαραίτητη για τη διασφάλιση της συμβατότητας του ChromeDriver κατά τη διάρκεια δοκιμών CI για την αποφυγή αναντιστοιχιών μεταξύ του Chrome και του ChromeDriver. |
MAJOR_VERSION=$(echo $CHROME_VERSION | cut -d '.' -f1) | Εξάγει τον αριθμό της κύριας έκδοσης από την πλήρη έκδοση του Chrome. Χρησιμοποιείται για τη λήψη μιας αντίστοιχης έκδοσης του ChromeDriver, διασφαλίζοντας τη συμβατότητα. |
LATEST_DRIVER=$(wget -qO- ...) | Ανακτά την πιο πρόσφατη συμβατή έκδοση του ChromeDriver για την καθορισμένη έκδοση του Chrome, απαραίτητη για την αποφυγή σφαλμάτων "DevToolsActivePort" στα σενάρια αυτοματισμού. |
if [ -z "$LATEST_DRIVER" ] | Ελέγχει εάν η μεταβλητή έκδοσης ChromeDriver είναι κενή, κάτι που θα υποδηλώνει σφάλμα κατά την ανάκτηση μιας συμβατής έκδοσης. Αυτή η συνθήκη βοηθά στην εφαρμογή μιας εναλλακτικής λύσης για την αποφυγή αποτυχιών της δοκιμής. |
sudo dpkg -i $CHROME_DEB | Εγκαθιστά το ληφθέν πακέτο Chrome χρησιμοποιώντας dpkg, το οποίο είναι ειδικά χρήσιμο σε περιβάλλοντα Linux όπως το GitHub Actions. |
sudo rm -f /usr/local/bin/chromedriver | Διαγράφει οποιοδήποτε προηγουμένως εγκατεστημένο ChromeDriver. Αυτό διασφαλίζει ότι δεν υπάρχει διένεξη έκδοσης κατά τη νέα εγκατάσταση. |
options.addArguments("--no-sandbox") | Απενεργοποιεί τη λειτουργία sandboxing του Chrome. Αυτό είναι ιδιαίτερα σημαντικό σε περιβάλλοντα CI, καθώς το sandboxing μπορεί να αποτρέψει την εκκίνηση του Chrome σε λειτουργία χωρίς κεφαλή. |
options.addArguments("--disable-dev-shm-usage") | Αυξάνει τη διαθέσιμη κοινόχρηστη μνήμη απενεργοποιώντας τη χρήση /dev/shm, η οποία μπορεί να αποτρέψει σφάλματα του Chrome σε περιβάλλοντα με περιορισμένη μνήμη, όπως κοντέινερ. |
options.addArguments("--remote-debugging-port=9222") | Ενεργοποιεί τον απομακρυσμένο εντοπισμό σφαλμάτων σε μια καθορισμένη θύρα. Αυτή είναι μια απαίτηση για το χωρίς κεφαλή Chrome για να λειτουργεί σωστά σε ορισμένα περιβάλλοντα, αποτρέποντας τα σφάλματα "DevToolsActivePort". |
driver.quit() | Κλείνει όλα τα παράθυρα του Chrome και τερματίζει την περίοδο λειτουργίας WebDriver, ελευθερώνοντας πόρους. Αυτό είναι απαραίτητο σε αγωγούς CI/CD για την αποφυγή διαρροών πόρων και την αποφυγή εξάντλησης της διαθέσιμης μνήμης. |
Λεπτομερής λύση για Chrome και ChromeDriver Setup σε CI
Τα παραπάνω σενάρια έχουν σχεδιαστεί για εγκατάσταση και διαμόρφωση τόσο του Chrome όσο και του ChromeDriver Ενέργειες GitHub περιβάλλοντα, αντιμετωπίζοντας συγκεκριμένα το σφάλμα "Το αρχείο DevToolsActivePort δεν υπάρχει". Αυτό το ζήτημα παρουσιάζεται συνήθως όταν το Chrome, που εκτελείται σε λειτουργία χωρίς κεφαλή, δεν μπορεί να ξεκινήσει σωστά λόγω αναντιστοιχιών ή περιορισμών μνήμης. Το πρώτο σενάριο αντιμετωπίζει αυτό καθορίζοντας μια έκδοση του Chrome και διασφαλίζοντας τη συμβατότητά του με το ChromeDriver, το οποίο είναι ζωτικής σημασίας για την εκτέλεση Σελήνιο δοκιμές. Οι αρχικές εντολές εκτελούν μια ενημέρωση των πακέτων apt και χρησιμοποιούν το wget για να ανακτήσουν μια συγκεκριμένη έκδοση του Google Chrome από έναν καθρέφτη. Η χρήση ενός καθρέφτη διασφαλίζει ότι έχει εγκατασταθεί η σωστή έκδοση, ειδικά εάν το προεπιλεγμένο αποθετήριο δεν διαθέτει αυτήν την έκδοση. Αυτή η προσέγγιση εγγυάται ότι μια συνεπής έκδοση του Chrome χρησιμοποιείται σε διαφορετικές δοκιμαστικές εκτελέσεις.
Στη συνέχεια, το σενάριο προχωρά στην εγκατάσταση ενός ChromeDriver συμβατό με την έκδοση απομονώνοντας την κύρια έκδοση από το Chrome (π.χ. "117" από "117.0.5938.62") χρησιμοποιώντας μια εντολή για την ανάλυσή του. Αυτό επιτρέπει στο σενάριο να ανακτήσει το ακριβές ChromeDriver που απαιτείται για τη συγκεκριμένη κύρια έκδοση χρησιμοποιώντας ένα μοτίβο διεύθυνσης URL που έχει σχεδιαστεί για εκδόσεις του ChromeDriver. Διασφαλίζοντας ότι αυτές οι εκδόσεις ευθυγραμμίζονται, η ρύθμιση αποτρέπει τις αναντιστοιχίες εκδόσεων από το να προκαλέσουν την αποτυχία προετοιμασίας του ChromeDriver, η οποία συχνά προκαλεί το σφάλμα DevTools. Εάν το ChromeDriver αποτύχει να πραγματοποιήσει λήψη της συγκεκριμένης έκδοσης, το σενάριο περιλαμβάνει μια εναλλακτική επιλογή για λήψη της πιο πρόσφατης έκδοσης, διατηρώντας την ευελιξία. Αυτά τα βήματα είναι ιδιαίτερα χρήσιμα σε αυτοματοποιημένες σωληνώσεις CI/CD όπου οι γρήγορες και αξιόπιστες λύσεις αποτελούν προτεραιότητα 🔧.
Μετά τη λήψη, το σενάριο διαγράφει οποιοδήποτε προηγουμένως εγκατεστημένο ChromeDriver από το σύστημα χρησιμοποιώντας το "sudo rm -f" για να αποφύγει διενέξεις με παλαιότερα προγράμματα οδήγησης. Αυτό διασφαλίζει ότι υπάρχει μόνο η σωστή έκδοση, ελαχιστοποιώντας τους κινδύνους συγκρούσεων έκδοσης που μπορεί να διαταράξουν τη σταθερότητα της δοκιμής. Τα δικαιώματα για το ChromeDriver έχουν επίσης ρυθμιστεί να είναι εκτελέσιμα, κάτι που είναι απαραίτητο βήμα για την εκκίνηση του προγράμματος οδήγησης σε περιβάλλοντα CI/CD. Η χρήση του Chrome σε λειτουργία "χωρίς κεφαλή" με επιλογές όπως "--no-sandbox" και "--disable-dev-shm-usage" μειώνει επίσης το αποτύπωμα πόρων του Chrome. Αυτές οι επιλογές επιτρέπουν την εκτέλεση δοκιμών σε περιβάλλοντα με περιορισμένους πόρους (π.χ. διακομιστές cloud ή αγωγούς CI) χωρίς να προκαλείται κατάρρευση του Chrome, κάτι που είναι μία από τις συνήθεις αιτίες πίσω από το σφάλμα DevToolsActivePort.
Τέλος, στη ρύθμιση του WebDriver, επιλογές όπως "--disable-gpu" και "--remote-debugging-port=9222" διασφαλίζουν μια πιο σταθερή εκτέλεση του Chrome σε λειτουργία χωρίς κεφαλή. Η σημαία "--disable-gpu" απενεργοποιεί την απόδοση GPU, η οποία είναι περιττή και μερικές φορές προβληματική σε λειτουργία χωρίς κεφαλή. Εν τω μεταξύ, η επιλογή "--remote-debugging-port" επιτρέπει στο Chrome να ανοίξει μια θύρα εντοπισμού σφαλμάτων που είναι απαραίτητη για τη σύνδεση του Selenium σε αυτό σε CI. Εν ολίγοις, αυτή η ρύθμιση αποτρέπει κοινά σημεία συμφόρησης αυτοματισμού, επιτρέποντας ένα πιο αξιόπιστο και ισχυρό περιβάλλον δοκιμών. Ως αποτέλεσμα, αυτά τα σενάρια κάνουν την εκτέλεση του Chrome χωρίς κεφαλή σε συστήματα CI/CD μια πολύ πιο ομαλή εμπειρία, διασφαλίζοντας ότι οι αυτοματοποιημένες δοκιμές εκτελούνται με συνέπεια χωρίς προβλήματα 🚀.
Επίλυση του σφάλματος "Το αρχείο DevToolsActivePort δεν υπάρχει" στις δοκιμές Selenium στο GitHub Actions
Λύση 1: Σενάριο εγκατάστασης και διαμόρφωσης για το Chrome και το ChromeDriver
sudo apt-get update
sudo apt-get install -y wget apt-transport-https curl
CHROME_VERSION="117.0.5938.62"
CHROME_DEB="google-chrome-stable_${CHROME_VERSION}-1_amd64.deb"
wget https://mirror.cs.uchicago.edu/google-chrome/pool/main/g/google-chrome-stable/$CHROME_DEB
sudo dpkg -i $CHROME_DEB || sudo apt-get install -f -y
# Install ChromeDriver matching Chrome
sudo apt-get install -y wget unzip
MAJOR_VERSION=$(echo $CHROME_VERSION | cut -d '.' -f1)
LATEST_DRIVER=$(wget -qO- https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$MAJOR_VERSION)
if [ -z "$LATEST_DRIVER" ]; then
echo "Falling back to latest ChromeDriver version."
LATEST_DRIVER=$(wget -qO- https://chromedriver.storage.googleapis.com/LATEST_RELEASE)
fi
sudo rm -f /usr/local/bin/chromedriver
wget https://chromedriver.storage.googleapis.com/$LATEST_DRIVER/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo mv chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver
Ρύθμιση του WebDriver με Java για ενέργειες GitHub σε λειτουργία χωρίς κεφαλή
Λύση 2: Διαμόρφωση επιλογών του Chrome και προετοιμασία του WebDriver σε Java
// Import necessary libraries
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import io.github.bonigarcia.wdm.WebDriverManager;
// Set up ChromeDriver
WebDriverManager.chromedriver().setup();
ChromeOptions options = new ChromeOptions();
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--headless");
options.addArguments("--disable-gpu");
options.addArguments("--remote-debugging-port=9222");
ChromeDriver driver = new ChromeDriver(options);
// Start Selenium test logic here
driver.quit();
Προσθήκη δοκιμών μονάδας για την επαλήθευση της συμβατότητας του Chrome και του WebDriver
Λύση 3: Δοκιμές μονάδας για τη διασφάλιση της συμβατότητας και την πρόληψη σφαλμάτων κατά την εκτέλεση CI
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
class WebDriverTests {
private WebDriver driver;
@BeforeEach
void setUp() {
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
options.addArguments("--no-sandbox");
driver = new ChromeDriver(options);
}
@Test
void testDriverInitialization() {
driver.get("https://www.google.com");
assertEquals("Google", driver.getTitle());
}
@AfterEach
void tearDown() {
driver.quit();
}
}
Βελτιστοποίηση δοκιμών σεληνίου με GitHub Actions και Headless Chrome
Μια σημαντική πτυχή του τρεξίματος ακέφαλο Chrome με το Selenium σε αγωγούς CI/CD όπως το GitHub Actions κατανοεί τους περιβαλλοντικούς περιορισμούς. Η εκτέλεση του Chrome σε λειτουργία χωρίς κεφαλή σημαίνει ότι λειτουργεί χωρίς γραφική διεπαφή, καθιστώντας το ιδανικό για περιβάλλοντα CI. Ωστόσο, το headless Chrome μπορεί να είναι πιο ευαίσθητο στις διαμορφώσεις συστήματος και απαιτεί πρόσθετη ρύθμιση σε σύγκριση με ένα τοπικό περιβάλλον. Το σφάλμα, "Το αρχείο DevToolsActivePort δεν υπάρχει", συνήθως συνδέεται με μια αποτυχία στην προετοιμασία του Chrome, συχνά λόγω περιορισμών μνήμης ή αναντιστοιχιών διαμόρφωσης. Εφαρμογή διαμορφώσεων εξοικονόμησης μνήμης όπως --disable-dev-shm-usage και --χωρίς sandbox βοηθά στην αντιμετώπιση αυτών των προβλημάτων και μπορεί να σταθεροποιήσει σημαντικά τις δοκιμές σε περιβάλλοντα CI/CD με περιορισμένη μνήμη.
Για να διασφαλιστεί η συμβατότητα, είναι σημαντικό να διατηρείτε τις εκδόσεις του Chrome και του ChromeDriver ευθυγραμμισμένες. Οι ασυνεπείς εκδόσεις αποτελούν συχνή πηγή σφαλμάτων στις Ενέργειες GitHub, καθώς ο δρομέας ενδέχεται να έχει προεπιλογή την πιο πρόσφατη έκδοση, η οποία μπορεί να μην ταιριάζει με τις απαιτήσεις του ChromeDriver. Για να αντιμετωπιστεί αυτό, η λύση μας περιλαμβάνει ανάλυση της κύριας έκδοσης του Chrome για την ανάκτηση της ακριβούς έκδοσης του ChromeDriver που αντιστοιχεί, βελτιώνοντας τη σταθερότητα. Επιπλέον, ρύθμιση remote-debugging-port επιτρέπει στο ChromeDriver να αλληλεπιδρά με το πρόγραμμα περιήγησης πιο αξιόπιστα, ενεργοποιώντας μια θύρα επικοινωνίας. Αυτή η ρύθμιση είναι απαραίτητη όταν χρησιμοποιείτε το GitHub Actions ή παρόμοια εργαλεία για αυτόματη εκτέλεση δοκιμές προγράμματος περιήγησης σε εικονική μηχανή.
Αυτές οι διαμορφώσεις κάνουν μεγάλη διαφορά στην απόδοση, μειώνοντας τα σφάλματα και βελτιώνοντας την αξιοπιστία των δοκιμαστικών εκτελέσεων. Με τη διασφάλιση επιλογών με αποδοτική χρήση πόρων και τη χρήση των σωστών εκδόσεων, οι εκτελέσεις του Chrome χωρίς κεφάλι είναι πολύ πιο πιθανό να εκτελεστούν με επιτυχία, εξοικονομώντας έτσι τους προγραμματιστές από το να αντιμετωπίσουν απογοητευτικά σφάλματα κατά τη διάρκεια της δοκιμής. Τελικά, οι ισχυρές διαμορφώσεις και οι συμβατές εξαρτήσεις κάνουν την εμπειρία δοκιμών CI/CD πιο ομαλή, επιτρέποντας στους προγραμματιστές να επικεντρωθούν στη δημιουργία και τη βελτίωση των εφαρμογών τους χωρίς τη διακοπή των επίμονων προβλημάτων εγκατάστασης 🚀.
Συνήθεις ερωτήσεις και λύσεις για την εκτέλεση του σεληνίου με το Chrome στο GitHub Actions
- Τι σημαίνει το σφάλμα "Το αρχείο DevToolsActivePort δεν υπάρχει";
- Αυτό το σφάλμα παρουσιάζεται όταν το Chrome αποτυγχάνει να ξεκινήσει σωστά σε λειτουργία χωρίς κεφαλή, συνήθως λόγω αναντιστοιχίας ρύθμισης ή έλλειψης πόρων συστήματος. Προσαρμογή επιλογών μνήμης όπως --disable-dev-shm-usage συχνά το επιλύει.
- Γιατί είναι σημαντική η αντιστοίχιση των εκδόσεων του Chrome και του ChromeDriver;
- Η αντιστοίχιση εκδόσεων αποφεύγει σφάλματα συμβατότητας. Χρησιμοποιώντας MAJOR_VERSION=$(echo $CHROME_VERSION | cut -d '.' -f1) και η ανάκτηση του συγκεκριμένου ChromeDriver διασφαλίζει ότι συνεργάζονται ομαλά.
- Πώς κάνει --remote-debugging-port=9222 βοήθεια σε ακέφαλες δοκιμές;
- Επιτρέπει τον έλεγχο μιας θύρας για το Chrome από το ChromeDriver, επιτρέποντας στις δοκιμές να συνδεθούν πιο αποτελεσματικά με την παρουσία του προγράμματος περιήγησης και αποτρέποντας τα σφάλματα DevTools.
- Τι κάνει --no-sandbox κάνω;
- Αυτό απενεργοποιεί το sandboxing του Chrome, το οποίο βοηθά το Chrome να ξεκινήσει σε περιβάλλοντα CI, καθώς το sandbox μπορεί μερικές φορές να προκαλέσει τη διακοπή λειτουργίας του Chrome χωρίς κεφαλή σε περιορισμένα περιβάλλοντα.
- Υπάρχει εναλλακτική λύση εάν αποτύχει η λήψη της έκδοσης του ChromeDriver;
- Ναι, το σενάριό μας περιλαμβάνει μια εναλλακτική που χρησιμοποιεί --latest_release εάν η αντίστοιχη έκδοση αποτύχει, βεβαιωθείτε ότι το ChromeDriver είναι διαθέσιμο ανεξάρτητα από την εγκατεστημένη έκδοση του Chrome.
- Πώς μπορώ να αποφύγω ζητήματα που σχετίζονται με τη μνήμη του Chrome σε αγωγούς CI/CD;
- Χρησιμοποιώντας --disable-dev-shm-usage ανακατευθύνει την κοινόχρηστη μνήμη, αποτρέποντας τα σφάλματα του Chrome λόγω περιορισμένου χώρου /dev/shm σε περιβάλλοντα CI.
- Μπορώ να διορθώσω το Chrome σε λειτουργία χωρίς κεφαλή;
- Ναι, χρησιμοποιώντας --remote-debugging-port και η εκτέλεση μιας δοκιμής τοπικά σάς επιτρέπει να ανοίξετε το Chrome DevTools για εντοπισμό σφαλμάτων σε λειτουργία χωρίς κεφαλή.
- Το WebDriverManager χειρίζεται αυτόματα τις ενημερώσεις του ChromeDriver;
- Το WebDriverManager απλοποιεί τις ενημερώσεις προγραμμάτων οδήγησης τοπικά, αλλά σε αγωγούς CI/CD, η ρύθμιση συγκεκριμένων εκδόσεων, όπως φαίνεται, είναι πιο αξιόπιστη για επαναλαμβανόμενες εκδόσεις.
- Ποιος είναι ο σκοπός του driver.quit() στο σενάριο;
- Αυτή η εντολή απελευθερώνει πόρους κλείνοντας το Chrome και τερματίζοντας την περίοδο λειτουργίας WebDriver, αποτρέποντας τις διαρροές μνήμης σε περιβάλλοντα CI/CD.
- Πώς μπορώ να δοκιμάσω τη ρύθμιση του Selenium στο GitHub Actions πριν από τη δέσμευση;
- Εκτέλεση δοκιμών τοπικά με headless Οι επιλογές και οι διαμορφώσεις CI μπορούν να εντοπίσουν προβλήματα πριν από την ώθηση στο GitHub, διευκολύνοντας τον εντοπισμό σφαλμάτων.
- Τι δικαιώματα χρειάζομαι για το ChromeDriver στο CI;
- Το ChromeDriver απαιτεί δικαιώματα εκτέλεσης, που ορίζονται από sudo chmod +x /usr/local/bin/chromedriver, για την επιτυχή εκτέλεση δοκιμών στο GitHub Actions.
Τελικές σκέψεις σχετικά με τη διαμόρφωση του Headless Chrome για δοκιμές CI/CD
Η διασφάλιση της σωστής ρύθμισης για τις δοκιμές Selenium με το χωρίς κεφαλές Chrome στο GitHub Actions εξοικονομεί χρόνο και ενισχύει την αξιοπιστία. Η αντιμετώπιση σφαλμάτων όπως "Το αρχείο DevToolsActivePort δεν υπάρχει" μπορεί να κάνει τη δοκιμή CI/CD πιο απρόσκοπτη και λιγότερο απογοητευτική για τους προγραμματιστές.
Με ευθυγράμμιση ChromeDriver και τις εκδόσεις του Chrome και τη διαμόρφωση επιλογών εξοικονόμησης μνήμης, αυτή η προσέγγιση βοηθά στην αποτελεσματική εκτέλεση δοκιμών σε περιβάλλοντα με περιορισμούς. Είναι μια πρακτική λύση που επιτρέπει στους προγραμματιστές να εστιάζουν στις βασικές τους εργασίες χωρίς να ανησυχούν για διακοπές δοκιμών 🚀.
Αναφορές και υλικό πηγής για την αντιμετώπιση προβλημάτων με το Selenium και το ChromeDriver
- Λεπτομερής οδηγός αντιμετώπισης προβλημάτων σχετικά με τον χειρισμό προβλημάτων DevToolsActivePort σε περιβάλλοντα χωρίς κεφαλή Chrome για CI/CD. Τεκμηρίωση Selenium WebDriver
- Ολοκληρωμένες οδηγίες εγκατάστασης και διαμόρφωσης για εκδόσεις Chrome και ChromeDriver σε ρυθμίσεις συνεχούς ενοποίησης, που παρέχονται από Τεκμηρίωση ενεργειών GitHub
- Βήμα προς βήμα λύση για τις επιλογές ρύθμισης, συμβατότητας και διαμόρφωσης του ChromeDriver που είναι διαθέσιμες στο Τεκμηρίωση WebDriverManager
- Αναφορά στις βέλτιστες πρακτικές για τη διαμόρφωση του Chrome χωρίς κεφαλή για απόδοση μνήμης σε CI/CD, ειδικά σε περιορισμένα περιβάλλοντα. Διαβάστε περισσότερα στο Οδηγός προγραμματιστή Google Chrome