CI/CD ಪೈಪ್ಲೈನ್ಗಳಲ್ಲಿ ಕ್ರೋಮ್ ಪರೀಕ್ಷಾ ವೈಫಲ್ಯಗಳನ್ನು ನಿವಾರಿಸುವುದು
ಸೆಲೆನಿಯಮ್ ಪರೀಕ್ಷೆಗಳನ್ನು ನಡೆಸಲಾಗುತ್ತಿದೆ ತಲೆಯಿಲ್ಲದ ಕ್ರೋಮ್ ಮೇಲೆ GitHub ಕ್ರಿಯೆಗಳು ತಡೆರಹಿತವಾಗಿರಬೇಕು. ಆದರೂ, ಅನೇಕ ಡೆವಲಪರ್ಗಳು ನಿರಾಶಾದಾಯಕ "DevToolsActivePort ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ" ದೋಷವನ್ನು ಎದುರಿಸುತ್ತಾರೆ. Chrome, ಒಂದು ಕಾರಣಕ್ಕಾಗಿ ಅಥವಾ ಇನ್ನೊಂದು ಕಾರಣಕ್ಕಾಗಿ, CI ಪರಿಸರದಲ್ಲಿ ಸರಿಯಾಗಿ ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾದಾಗ ಇದು ಸಂಭವಿಸುತ್ತದೆ.
ದೋಷ ಸಂದೇಶವು ಸಾಮಾನ್ಯವಾಗಿ Chrome ಅನಿರೀಕ್ಷಿತವಾಗಿ ಕ್ರ್ಯಾಶ್ ಆಗುತ್ತಿದೆ ಎಂದು ಸಂಕೇತಿಸುತ್ತದೆ, ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಹೊಂದಿಕೆಯಾಗದ ಪರಿಣಾಮವಾಗಿದೆ ಕ್ರೋಮ್ ಮತ್ತು ChromeDriver ಪರೀಕ್ಷಾ ಸೆಟಪ್ನಲ್ಲಿ ಆವೃತ್ತಿಗಳು ಅಥವಾ ತಪ್ಪಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾದ ಆಯ್ಕೆಗಳು. ಅನೇಕ ಡೆವಲಪರ್ಗಳಂತೆ, ನಾನು ಈ ಸವಾಲನ್ನು ಎದುರಿಸಿದ್ದೇನೆ, ವಿಶೇಷವಾಗಿ a ನಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತ ಪರೀಕ್ಷೆಗಳನ್ನು ನಿಯೋಜಿಸುವಾಗ ನಿರಂತರ ಏಕೀಕರಣ ಪರಿಸರ.
ಈ ಸೆಟಪ್ನಲ್ಲಿ, ಕ್ರೋಮ್ಡ್ರೈವರ್ ಆವೃತ್ತಿಯ ಹೊಂದಾಣಿಕೆಯಿಲ್ಲದಂತಹ ಚಿಕ್ಕ ತಪ್ಪು ಜೋಡಣೆಯು ಪರೀಕ್ಷಾ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಬಹುದು, ಮೌಲ್ಯಯುತವಾದ ಸಮಯ ಮತ್ತು ಸಂಪನ್ಮೂಲಗಳನ್ನು ವ್ಯಯಿಸುತ್ತದೆ. ಅದೃಷ್ಟವಶಾತ್, ಆಧಾರವಾಗಿರುವ ಸಮಸ್ಯೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಅದನ್ನು ಪರಿಹರಿಸುವುದನ್ನು ಹೆಚ್ಚು ಸುಲಭಗೊಳಿಸುತ್ತದೆ 🛠️.
ಈ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ, ಈ ಸಾಮಾನ್ಯ ದೋಷವನ್ನು ತಡೆಗಟ್ಟಲು ಮತ್ತು ನಿವಾರಿಸಲು ನಾವು ಪ್ರಾಯೋಗಿಕ ಹಂತಗಳಿಗೆ ಧುಮುಕುತ್ತೇವೆ. ಕ್ರೋಮ್ ಇನ್ಸ್ಟಾಲೇಶನ್ ವಿಶೇಷತೆಗಳಿಂದ ಸರಿಯಾದ ಚಾಲಕ ಪ್ರಾರಂಭದವರೆಗೆ, ಪ್ರತಿ ಬಾರಿಯೂ ಸುಗಮ ಪರೀಕ್ಷೆ ರನ್ ಆಗುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನೀವು ಹಂತ-ಹಂತದ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಕಾಣುತ್ತೀರಿ. ಈ ಸಮಸ್ಯೆಯನ್ನು ನಿಭಾಯಿಸೋಣ ಮತ್ತು ನಿಮ್ಮ ಪರೀಕ್ಷೆಗಳನ್ನು ಮತ್ತೆ ಟ್ರ್ಯಾಕ್ಗೆ ತರೋಣ!
| ಆಜ್ಞೆ | ಬಳಕೆಯ ಉದಾಹರಣೆ |
|---|---|
| CHROME_VERSION="117.0.5938.62" | Chrome ಮತ್ತು ChromeDriver ನಡುವೆ ಹೊಂದಾಣಿಕೆಯಾಗದಂತೆ ತಡೆಯಲು CI ಪರೀಕ್ಷೆಗಳ ಸಮಯದಲ್ಲಿ ChromeDriver ಹೊಂದಾಣಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಅಗತ್ಯವಾದ ನಿರ್ದಿಷ್ಟ Chrome ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿಸುತ್ತದೆ. |
| MAJOR_VERSION=$(echo $CHROME_VERSION | cut -d '.' -f1) | ಪೂರ್ಣ Chrome ಆವೃತ್ತಿಯಿಂದ ಪ್ರಮುಖ ಆವೃತ್ತಿ ಸಂಖ್ಯೆಯನ್ನು ಹೊರತೆಗೆಯುತ್ತದೆ. ಹೊಂದಾಣಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ChromeDriver ನ ಹೊಂದಾಣಿಕೆಯ ಆವೃತ್ತಿಯನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. |
| LATEST_DRIVER=$(wget -qO- ...) | ಆಟೋಮೇಷನ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳಲ್ಲಿ "DevToolsActivePort" ದೋಷಗಳನ್ನು ತಪ್ಪಿಸಲು ಅಗತ್ಯವಾದ ನಿರ್ದಿಷ್ಟ Chrome ಆವೃತ್ತಿಗೆ ಇತ್ತೀಚಿನ ಹೊಂದಾಣಿಕೆಯ ChromeDriver ಆವೃತ್ತಿಯನ್ನು ಪಡೆಯುತ್ತದೆ. |
| if [ -z "$LATEST_DRIVER" ] | ChromeDriver ಆವೃತ್ತಿಯ ವೇರಿಯೇಬಲ್ ಖಾಲಿಯಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ, ಇದು ಹೊಂದಾಣಿಕೆಯ ಆವೃತ್ತಿಯನ್ನು ಪಡೆಯುವಲ್ಲಿ ದೋಷವನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಈ ಸ್ಥಿತಿಯು ಪರೀಕ್ಷಾ ವೈಫಲ್ಯಗಳನ್ನು ತಡೆಗಟ್ಟಲು ಫಾಲ್ಬ್ಯಾಕ್ ಅನ್ನು ಅನ್ವಯಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. |
| sudo dpkg -i $CHROME_DEB | ಡೌನ್ಲೋಡ್ ಮಾಡಿದ Chrome ಪ್ಯಾಕೇಜ್ ಅನ್ನು dpkg ಬಳಸಿಕೊಂಡು ಸ್ಥಾಪಿಸುತ್ತದೆ, ಇದು GitHub ಕ್ರಿಯೆಗಳಂತಹ Linux ಪರಿಸರದಲ್ಲಿ ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ. |
| sudo rm -f /usr/local/bin/chromedriver | ಈ ಹಿಂದೆ ಸ್ಥಾಪಿಸಲಾದ ಯಾವುದೇ ChromeDriver ಅನ್ನು ಅಳಿಸುತ್ತದೆ. ಹೊಸ ಅನುಸ್ಥಾಪನೆಯ ಸಮಯದಲ್ಲಿ ಯಾವುದೇ ಆವೃತ್ತಿ ಸಂಘರ್ಷವಿಲ್ಲ ಎಂದು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ. |
| options.addArguments("--no-sandbox") | Chrome ಸ್ಯಾಂಡ್ಬಾಕ್ಸಿಂಗ್ ವೈಶಿಷ್ಟ್ಯವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. CI ಪರಿಸರದಲ್ಲಿ ಇದು ವಿಶೇಷವಾಗಿ ಮುಖ್ಯವಾಗಿದೆ, ಏಕೆಂದರೆ ಸ್ಯಾಂಡ್ಬಾಕ್ಸಿಂಗ್ Chrome ಅನ್ನು ಹೆಡ್ಲೆಸ್ ಮೋಡ್ನಲ್ಲಿ ಪ್ರಾರಂಭಿಸುವುದನ್ನು ತಡೆಯಬಹುದು. |
| options.addArguments("--disable-dev-shm-usage") | /dev/shm ಬಳಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವ ಮೂಲಕ ಲಭ್ಯವಿರುವ ಹಂಚಿಕೆಯ ಮೆಮೊರಿಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ, ಇದು ಕಂಟೈನರ್ಗಳಂತಹ ಸೀಮಿತ ಮೆಮೊರಿಯ ಪರಿಸರದಲ್ಲಿ Chrome ಕ್ರ್ಯಾಶ್ಗಳನ್ನು ತಡೆಯಬಹುದು. |
| options.addArguments("--remote-debugging-port=9222") | ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಪೋರ್ಟ್ನಲ್ಲಿ ರಿಮೋಟ್ ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. "DevToolsActivePort" ದೋಷಗಳನ್ನು ತಡೆಗಟ್ಟುವ ಮೂಲಕ ಕೆಲವು ಪರಿಸರದಲ್ಲಿ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಇದು ಹೆಡ್ಲೆಸ್ ಕ್ರೋಮ್ಗೆ ಅಗತ್ಯವಾಗಿದೆ. |
| driver.quit() | ಎಲ್ಲಾ Chrome ವಿಂಡೋಗಳನ್ನು ಮುಚ್ಚುತ್ತದೆ ಮತ್ತು ವೆಬ್ಡ್ರೈವರ್ ಸೆಶನ್ ಅನ್ನು ಕೊನೆಗೊಳಿಸುತ್ತದೆ, ಸಂಪನ್ಮೂಲಗಳನ್ನು ಮುಕ್ತಗೊಳಿಸುತ್ತದೆ. ಸಂಪನ್ಮೂಲ ಸೋರಿಕೆಯನ್ನು ತಡೆಗಟ್ಟಲು ಮತ್ತು ಲಭ್ಯವಿರುವ ಮೆಮೊರಿಯ ಕೊರತೆಯನ್ನು ತಪ್ಪಿಸಲು CI/CD ಪೈಪ್ಲೈನ್ಗಳಲ್ಲಿ ಇದು ಅತ್ಯಗತ್ಯ. |
CI ನಲ್ಲಿ Chrome ಮತ್ತು ChromeDriver ಸೆಟಪ್ಗಾಗಿ ವಿವರವಾದ ಪರಿಹಾರ
ಮೇಲಿನ ಸ್ಕ್ರಿಪ್ಟ್ಗಳನ್ನು Chrome ಮತ್ತು ChromeDriver ಎರಡನ್ನೂ ಸ್ಥಾಪಿಸಲು ಮತ್ತು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ GitHub ಕ್ರಿಯೆಗಳು ಪರಿಸರಗಳು, ನಿರ್ದಿಷ್ಟವಾಗಿ "DevToolsActivePort ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ" ದೋಷವನ್ನು ಪರಿಹರಿಸುತ್ತದೆ. ಕ್ರೋಮ್, ಹೆಡ್ಲೆಸ್ ಮೋಡ್ನಲ್ಲಿ ಚಾಲನೆಯಲ್ಲಿರುವಾಗ, ಹೊಂದಿಕೆಯಾಗದಿರುವುದು ಅಥವಾ ಮೆಮೊರಿ ನಿರ್ಬಂಧಗಳ ಕಾರಣದಿಂದಾಗಿ ಸರಿಯಾಗಿ ಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದಾಗ ಈ ಸಮಸ್ಯೆಯು ಸಾಮಾನ್ಯವಾಗಿ ಸಂಭವಿಸುತ್ತದೆ. ಮೊದಲ ಸ್ಕ್ರಿಪ್ಟ್ Chrome ಆವೃತ್ತಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಮೂಲಕ ಮತ್ತು ಚಾಲನೆಯಲ್ಲಿರುವ ChromeDriver ನೊಂದಿಗೆ ಅದರ ಹೊಂದಾಣಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವ ಮೂಲಕ ಇದನ್ನು ನಿಭಾಯಿಸುತ್ತದೆ. ಸೆಲೆನಿಯಮ್ ಪರೀಕ್ಷೆಗಳು. ಆರಂಭಿಕ ಆಜ್ಞೆಗಳು ಆಪ್ಟ್ ಪ್ಯಾಕೇಜ್ಗಳ ನವೀಕರಣವನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ ಮತ್ತು ಕನ್ನಡಿಯಿಂದ Google Chrome ನ ನಿರ್ದಿಷ್ಟ ಆವೃತ್ತಿಯನ್ನು ಪಡೆಯಲು wget ಅನ್ನು ಬಳಸುತ್ತವೆ. ಕನ್ನಡಿಯನ್ನು ಬಳಸುವುದರಿಂದ ಸರಿಯಾದ ಆವೃತ್ತಿಯನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ಡೀಫಾಲ್ಟ್ ರೆಪೊಸಿಟರಿಯು ಈ ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೆ. ಈ ವಿಧಾನವು Chrome ನ ಸ್ಥಿರ ಆವೃತ್ತಿಯನ್ನು ವಿವಿಧ ಪರೀಕ್ಷಾ ರನ್ಗಳಲ್ಲಿ ಬಳಸಲಾಗಿದೆ ಎಂದು ಖಾತರಿಪಡಿಸುತ್ತದೆ.
ಮುಂದೆ, ಸ್ಕ್ರಿಪ್ಟ್ ಅದನ್ನು ಪಾರ್ಸ್ ಮಾಡಲು ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು Chrome ನಿಂದ ಪ್ರಮುಖ ಆವೃತ್ತಿಯನ್ನು ಪ್ರತ್ಯೇಕಿಸುವ ಮೂಲಕ ಆವೃತ್ತಿ-ಹೊಂದಾಣಿಕೆಯ ChromeDriver ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಮುಂದುವರಿಯುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, "117.0.5938.62" ನಿಂದ "117"). ChromeDriver ಬಿಡುಗಡೆಗಳಿಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ URL ಮಾದರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ನಿರ್ದಿಷ್ಟ ಪ್ರಮುಖ ಆವೃತ್ತಿಗೆ ಅಗತ್ಯವಿರುವ ನಿಖರವಾದ ChromeDriver ಅನ್ನು ಪಡೆದುಕೊಳ್ಳಲು ಇದು ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಈ ಆವೃತ್ತಿಗಳು ಒಗ್ಗೂಡಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವ ಮೂಲಕ, ಹೊಂದಾಣಿಕೆಯಾಗದ ಆವೃತ್ತಿಗಳು ChromeDriver ಆರಂಭದ ವೈಫಲ್ಯಕ್ಕೆ ಕಾರಣವಾಗುವುದನ್ನು ಸೆಟಪ್ ತಡೆಯುತ್ತದೆ, ಇದು ಸಾಮಾನ್ಯವಾಗಿ DevTools ದೋಷವನ್ನು ಪ್ರಚೋದಿಸುತ್ತದೆ. ChromeDriver ನಿರ್ದಿಷ್ಟ ಆವೃತ್ತಿಯನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು ವಿಫಲವಾದರೆ, ಸ್ಕ್ರಿಪ್ಟ್ ಇತ್ತೀಚಿನ ಬಿಡುಗಡೆಯನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಫಾಲ್ಬ್ಯಾಕ್ ಆಯ್ಕೆಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ನಮ್ಯತೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳುತ್ತದೆ. ತ್ವರಿತ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹ ಪರಿಹಾರಗಳು ಆದ್ಯತೆಯಿರುವ ಸ್ವಯಂಚಾಲಿತ CI/CD ಪೈಪ್ಲೈನ್ಗಳಲ್ಲಿ ಈ ಹಂತಗಳು ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿವೆ 🔧.
ಡೌನ್ಲೋಡ್ ಮಾಡಿದ ನಂತರ, ಹಳೆಯ ಡ್ರೈವರ್ಗಳೊಂದಿಗೆ ಘರ್ಷಣೆಯನ್ನು ತಪ್ಪಿಸಲು ಸ್ಕ್ರಿಪ್ಟ್ "sudo rm -f" ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸಿಸ್ಟಮ್ನಿಂದ ಹಿಂದೆ ಸ್ಥಾಪಿಸಲಾದ ಯಾವುದೇ ChromeDriver ಅನ್ನು ಅಳಿಸುತ್ತದೆ. ಪರೀಕ್ಷಾ ಸ್ಥಿರತೆಗೆ ಅಡ್ಡಿಪಡಿಸುವ ಆವೃತ್ತಿಯ ಸಂಘರ್ಷಗಳ ಅಪಾಯಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಮೂಲಕ ಸರಿಯಾದ ಆವೃತ್ತಿ ಮಾತ್ರ ಜಾರಿಯಲ್ಲಿದೆ ಎಂದು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ChromeDriver ಗಾಗಿ ಅನುಮತಿಗಳನ್ನು ಸಹ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಹೊಂದಿಸಲಾಗಿದೆ, ಇದು CI/CD ಪರಿಸರದಲ್ಲಿ ಚಾಲಕವನ್ನು ಪ್ರಾರಂಭಿಸಲು ಅಗತ್ಯವಾದ ಹಂತವಾಗಿದೆ. "--no-sandbox" ಮತ್ತು "--disable-dev-shm-usage" ನಂತಹ ಆಯ್ಕೆಗಳೊಂದಿಗೆ "ಹೆಡ್ಲೆಸ್" ಮೋಡ್ನಲ್ಲಿ Chrome ಅನ್ನು ಬಳಸುವುದರಿಂದ Chrome ನ ಸಂಪನ್ಮೂಲ ಹೆಜ್ಜೆಗುರುತುಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಈ ಆಯ್ಕೆಗಳು Chrome ಕ್ರ್ಯಾಶ್ಗೆ ಕಾರಣವಾಗದೆ ಸೀಮಿತ ಸಂಪನ್ಮೂಲಗಳೊಂದಿಗೆ (ಉದಾ., ಕ್ಲೌಡ್ ಸರ್ವರ್ಗಳು ಅಥವಾ CI ಪೈಪ್ಲೈನ್ಗಳು) ಪರಿಸರದಲ್ಲಿ ರನ್ ಮಾಡಲು ಪರೀಕ್ಷೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ, ಇದು DevToolsActivePort ದೋಷದ ಹಿಂದಿನ ಸಾಮಾನ್ಯ ಕಾರಣಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ.
ಅಂತಿಮವಾಗಿ, WebDriver ಸೆಟಪ್ನಲ್ಲಿ, “--disable-gpu” ಮತ್ತು “--remote-debugging-port=9222” ನಂತಹ ಆಯ್ಕೆಗಳು ಹೆಡ್ಲೆಸ್ ಮೋಡ್ನಲ್ಲಿ ಹೆಚ್ಚು ಸ್ಥಿರವಾದ Chrome ರನ್ ಅನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. "--disable-gpu" ಫ್ಲ್ಯಾಗ್ GPU ರೆಂಡರಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ, ಇದು ಹೆಡ್ಲೆಸ್ ಮೋಡ್ನಲ್ಲಿ ಅನಗತ್ಯ ಮತ್ತು ಕೆಲವೊಮ್ಮೆ ಸಮಸ್ಯಾತ್ಮಕವಾಗಿರುತ್ತದೆ. ಏತನ್ಮಧ್ಯೆ, "--ರಿಮೋಟ್-ಡೀಬಗ್ಗಿಂಗ್-ಪೋರ್ಟ್" ಆಯ್ಕೆಯು ಸಿಐನಲ್ಲಿ ಸೆಲೆನಿಯಮ್ಗೆ ಸಂಪರ್ಕಿಸಲು ಅಗತ್ಯವಾದ ಡೀಬಗ್ ಮಾಡುವ ಪೋರ್ಟ್ ಅನ್ನು ತೆರೆಯಲು Chrome ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಒಟ್ಟಾರೆಯಾಗಿ, ಈ ಸೆಟಪ್ ಸಾಮಾನ್ಯ ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಅಡಚಣೆಗಳನ್ನು ತಡೆಯುತ್ತದೆ, ಹೆಚ್ಚು ವಿಶ್ವಾಸಾರ್ಹ ಮತ್ತು ದೃಢವಾದ ಪರೀಕ್ಷಾ ವಾತಾವರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಪರಿಣಾಮವಾಗಿ, ಈ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು CI/CD ಸಿಸ್ಟಂಗಳಲ್ಲಿ ಹೆಡ್ಲೆಸ್ ಕ್ರೋಮ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡುವುದನ್ನು ಹೆಚ್ಚು ಸುಗಮವಾದ ಅನುಭವವನ್ನಾಗಿ ಮಾಡುತ್ತದೆ, ಸ್ವಯಂಚಾಲಿತ ಪರೀಕ್ಷೆಗಳು ಬಿಕ್ಕಳಿಸದೆ ಸ್ಥಿರವಾಗಿ ನಡೆಯುವುದನ್ನು ಖಾತ್ರಿಪಡಿಸುತ್ತದೆ 🚀.
GitHub ಕ್ರಿಯೆಗಳಲ್ಲಿನ ಸೆಲೆನಿಯಮ್ ಪರೀಕ್ಷೆಗಳಲ್ಲಿ "DevToolsActivePort ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ" ದೋಷವನ್ನು ಪರಿಹರಿಸುವುದು
ಪರಿಹಾರ 1: Chrome ಮತ್ತು ChromeDriver ಗಾಗಿ ಅನುಸ್ಥಾಪನೆ ಮತ್ತು ಕಾನ್ಫಿಗರೇಶನ್ ಸ್ಕ್ರಿಪ್ಟ್
sudo apt-get updatesudo apt-get install -y wget apt-transport-https curlCHROME_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_DEBsudo dpkg -i $CHROME_DEB || sudo apt-get install -f -y# Install ChromeDriver matching Chromesudo apt-get install -y wget unzipMAJOR_VERSION=$(echo $CHROME_VERSION | cut -d '.' -f1)LATEST_DRIVER=$(wget -qO- https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$MAJOR_VERSION)if [ -z "$LATEST_DRIVER" ]; thenecho "Falling back to latest ChromeDriver version."LATEST_DRIVER=$(wget -qO- https://chromedriver.storage.googleapis.com/LATEST_RELEASE)fisudo rm -f /usr/local/bin/chromedriverwget https://chromedriver.storage.googleapis.com/$LATEST_DRIVER/chromedriver_linux64.zipunzip chromedriver_linux64.zipsudo mv chromedriver /usr/local/bin/sudo chmod +x /usr/local/bin/chromedriver
ಹೆಡ್ಲೆಸ್ ಮೋಡ್ನಲ್ಲಿ GitHub ಕ್ರಿಯೆಗಳಿಗಾಗಿ Java ನೊಂದಿಗೆ WebDriver ಅನ್ನು ಹೊಂದಿಸಲಾಗುತ್ತಿದೆ
ಪರಿಹಾರ 2: ಕ್ರೋಮ್ ಆಯ್ಕೆಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು ಮತ್ತು ಜಾವಾದಲ್ಲಿ ವೆಬ್ಡ್ರೈವರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುವುದು
// Import necessary librariesimport org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.chrome.ChromeOptions;import io.github.bonigarcia.wdm.WebDriverManager;// Set up ChromeDriverWebDriverManager.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 heredriver.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;@BeforeEachvoid setUp() {ChromeOptions options = new ChromeOptions();options.addArguments("--headless");options.addArguments("--no-sandbox");driver = new ChromeDriver(options);}@Testvoid testDriverInitialization() {driver.get("https://www.google.com");assertEquals("Google", driver.getTitle());}@AfterEachvoid tearDown() {driver.quit();}}
GitHub ಕ್ರಿಯೆಗಳು ಮತ್ತು ಹೆಡ್ಲೆಸ್ ಕ್ರೋಮ್ನೊಂದಿಗೆ ಸೆಲೆನಿಯಮ್ ಪರೀಕ್ಷೆಗಳನ್ನು ಉತ್ತಮಗೊಳಿಸುವುದು
ಚಾಲನೆಯಲ್ಲಿರುವ ಒಂದು ಪ್ರಮುಖ ಅಂಶ ತಲೆಯಿಲ್ಲದ ಕ್ರೋಮ್ GitHub ಕ್ರಿಯೆಗಳಂತಹ CI/CD ಪೈಪ್ಲೈನ್ಗಳಲ್ಲಿನ ಸೆಲೆನಿಯಮ್ನೊಂದಿಗೆ ಪರಿಸರದ ನಿರ್ಬಂಧಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತಿದೆ. ಕ್ರೋಮ್ ಅನ್ನು ಹೆಡ್ಲೆಸ್ ಮೋಡ್ನಲ್ಲಿ ರನ್ ಮಾಡುವುದು ಎಂದರೆ ಅದು ಗ್ರಾಫಿಕಲ್ ಇಂಟರ್ಫೇಸ್ ಇಲ್ಲದೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಇದು CI ಪರಿಸರಕ್ಕೆ ಪರಿಪೂರ್ಣವಾಗಿದೆ. ಆದಾಗ್ಯೂ, ಹೆಡ್ಲೆಸ್ ಕ್ರೋಮ್ ಸಿಸ್ಟಮ್ ಕಾನ್ಫಿಗರೇಶನ್ಗಳಿಗೆ ಹೆಚ್ಚು ಸಂವೇದನಾಶೀಲವಾಗಿರುತ್ತದೆ ಮತ್ತು ಸ್ಥಳೀಯ ಪರಿಸರಕ್ಕೆ ಹೋಲಿಸಿದರೆ ಹೆಚ್ಚುವರಿ ಸೆಟಪ್ ಅಗತ್ಯವಿರುತ್ತದೆ. "DevToolsActivePort ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ" ಎಂಬ ದೋಷವು ಸಾಮಾನ್ಯವಾಗಿ ಮೆಮೊರಿಯ ನಿರ್ಬಂಧಗಳು ಅಥವಾ ಕಾನ್ಫಿಗರೇಶನ್ ಅಸಾಮರಸ್ಯಗಳಿಂದಾಗಿ Chrome ನ ಪ್ರಾರಂಭದಲ್ಲಿ ವೈಫಲ್ಯಕ್ಕೆ ಲಿಂಕ್ ಆಗಿದೆ. ನಂತಹ ಮೆಮೊರಿ-ಸಮರ್ಥ ಕಾನ್ಫಿಗರೇಶನ್ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು --dev-shm-ಬಳಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ ಮತ್ತು --ನೋ-ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ ಈ ಸಮಸ್ಯೆಗಳನ್ನು ನಿವಾರಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ ಮತ್ತು ಮೆಮೊರಿ-ಸೀಮಿತ CI/CD ಪರಿಸರದಲ್ಲಿ ಪರೀಕ್ಷೆಗಳನ್ನು ಗಣನೀಯವಾಗಿ ಸ್ಥಿರಗೊಳಿಸುತ್ತದೆ.
ಹೊಂದಾಣಿಕೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ಕ್ರೋಮ್ ಮತ್ತು ಕ್ರೋಮ್ ಡ್ರೈವರ್ ಎರಡನ್ನೂ ಜೋಡಿಸಿ ಇಡುವುದು ಅತ್ಯಗತ್ಯ. ಅಸಮಂಜಸವಾದ ಆವೃತ್ತಿಗಳು GitHub ಕ್ರಿಯೆಗಳಲ್ಲಿನ ದೋಷಗಳ ಆಗಾಗ್ಗೆ ಮೂಲವಾಗಿದೆ, ಏಕೆಂದರೆ ರನ್ನರ್ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಗೆ ಡೀಫಾಲ್ಟ್ ಆಗಿರಬಹುದು, ಇದು ChromeDriver ಅವಶ್ಯಕತೆಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. ಇದನ್ನು ಪರಿಹರಿಸಲು, ನಮ್ಮ ಪರಿಹಾರವು ಸ್ಥಿರತೆಯನ್ನು ಸುಧಾರಿಸುವ, ಅನುಗುಣವಾದ ನಿಖರವಾದ ChromeDriver ಆವೃತ್ತಿಯನ್ನು ಪಡೆದುಕೊಳ್ಳಲು ಪ್ರಮುಖ Chrome ಆವೃತ್ತಿಯನ್ನು ಪಾರ್ಸ್ ಮಾಡುವುದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಸೆಟ್ಟಿಂಗ್ ರಿಮೋಟ್-ಡೀಬಗ್ಗಿಂಗ್-ಪೋರ್ಟ್ ಸಂವಹನ ಪೋರ್ಟ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೂಲಕ ಬ್ರೌಸರ್ನೊಂದಿಗೆ ಹೆಚ್ಚು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ಸಂವಹನ ನಡೆಸಲು ChromeDriver ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರನ್ ಮಾಡಲು GitHub ಕ್ರಿಯೆಗಳು ಅಥವಾ ಅಂತಹುದೇ ಪರಿಕರಗಳನ್ನು ಬಳಸುವಾಗ ಈ ಸೆಟಪ್ ಅತ್ಯಗತ್ಯ ಬ್ರೌಸರ್ ಪರೀಕ್ಷೆಗಳು ವರ್ಚುವಲ್ ಗಣಕದಲ್ಲಿ.
ಈ ಸಂರಚನೆಗಳು ದಕ್ಷತೆಯಲ್ಲಿ ದೊಡ್ಡ ವ್ಯತ್ಯಾಸವನ್ನು ಮಾಡುತ್ತವೆ, ದೋಷಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಪರೀಕ್ಷಾ ರನ್ಗಳ ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. ಸಂಪನ್ಮೂಲ-ಸಮರ್ಥ ಆಯ್ಕೆಗಳನ್ನು ಖಾತ್ರಿಪಡಿಸಿಕೊಳ್ಳುವ ಮೂಲಕ ಮತ್ತು ಸರಿಯಾದ ಆವೃತ್ತಿಗಳನ್ನು ಬಳಸುವ ಮೂಲಕ, ಹೆಡ್ಲೆಸ್ ಕ್ರೋಮ್ ರನ್ಗಳು ಯಶಸ್ವಿಯಾಗಿ ಕಾರ್ಯಗತಗೊಳ್ಳುವ ಸಾಧ್ಯತೆ ಹೆಚ್ಚು, ಹತಾಶೆಯ ದೋಷಗಳನ್ನು ಮಧ್ಯ-ಪರೀಕ್ಷೆಯಿಂದ ವ್ಯವಹರಿಸುವುದರಿಂದ ಡೆವಲಪರ್ಗಳನ್ನು ಉಳಿಸುತ್ತದೆ. ಅಂತಿಮವಾಗಿ, ದೃಢವಾದ ಕಾನ್ಫಿಗರೇಶನ್ಗಳು ಮತ್ತು ಹೊಂದಾಣಿಕೆಯ ಅವಲಂಬನೆಗಳು CI/CD ಪರೀಕ್ಷಾ ಅನುಭವವನ್ನು ಸುಗಮಗೊಳಿಸುತ್ತದೆ, ಡೆವಲಪರ್ಗಳು ನಿರಂತರ ಸೆಟಪ್ ಸಮಸ್ಯೆಗಳ ಅಡ್ಡಿಯಿಲ್ಲದೆ ತಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ರಚಿಸುವ ಮತ್ತು ಸುಧಾರಿಸುವತ್ತ ಗಮನಹರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
GitHub ಕ್ರಿಯೆಗಳಲ್ಲಿ Chrome ನೊಂದಿಗೆ ಸೆಲೆನಿಯಮ್ ಅನ್ನು ಚಲಾಯಿಸಲು ಸಾಮಾನ್ಯ ಪ್ರಶ್ನೆಗಳು ಮತ್ತು ಪರಿಹಾರಗಳು
- "DevToolsActivePort ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ" ಎಂಬ ದೋಷದ ಅರ್ಥವೇನು?
- ಕ್ರೋಮ್ ಹೆಡ್ಲೆಸ್ ಮೋಡ್ನಲ್ಲಿ ಸರಿಯಾಗಿ ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾದಾಗ ಈ ದೋಷ ಸಂಭವಿಸುತ್ತದೆ, ಸಾಮಾನ್ಯವಾಗಿ ಸೆಟಪ್ ಹೊಂದಿಕೆಯಾಗದಿರುವುದು ಅಥವಾ ಸಿಸ್ಟಮ್ ಸಂಪನ್ಮೂಲಗಳ ಕೊರತೆಯಿಂದಾಗಿ. ನಂತಹ ಮೆಮೊರಿ ಆಯ್ಕೆಗಳನ್ನು ಹೊಂದಿಸುವುದು --disable-dev-shm-usage ಆಗಾಗ್ಗೆ ಅದನ್ನು ಪರಿಹರಿಸುತ್ತದೆ.
- Chrome ಮತ್ತು ChromeDriver ಆವೃತ್ತಿಗಳನ್ನು ಹೊಂದಾಣಿಕೆ ಮಾಡುವುದು ಏಕೆ ಮುಖ್ಯ?
- ಹೊಂದಾಣಿಕೆಯ ಆವೃತ್ತಿಗಳು ಹೊಂದಾಣಿಕೆಯ ದೋಷಗಳನ್ನು ತಪ್ಪಿಸುತ್ತದೆ. ಬಳಸುತ್ತಿದೆ MAJOR_VERSION=$(echo $CHROME_VERSION | cut -d '.' -f1) ಮತ್ತು ನಿರ್ದಿಷ್ಟ ChromeDriver ಅನ್ನು ಪಡೆಯುವುದರಿಂದ ಅವುಗಳು ಸರಾಗವಾಗಿ ಒಟ್ಟಿಗೆ ಕೆಲಸ ಮಾಡುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
- ಹೇಗೆ ಮಾಡುತ್ತದೆ --remote-debugging-port=9222 ತಲೆಯಿಲ್ಲದ ಪರೀಕ್ಷೆಯಲ್ಲಿ ಸಹಾಯ ಮಾಡುವುದೇ?
- ಇದು ChromeDriver ನಿಂದ ನಿಯಂತ್ರಿಸಲ್ಪಡಲು Chrome ಗಾಗಿ ಪೋರ್ಟ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ, ಬ್ರೌಸರ್ ನಿದರ್ಶನದೊಂದಿಗೆ ಪರೀಕ್ಷೆಗಳನ್ನು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಸಂಪರ್ಕಿಸಲು ಅನುಮತಿಸುತ್ತದೆ ಮತ್ತು DevTools ದೋಷಗಳನ್ನು ತಡೆಯುತ್ತದೆ.
- ಏನು ಮಾಡುತ್ತದೆ --no-sandbox ಮಾಡುವುದೇ?
- ಇದು Chrome ನ ಸ್ಯಾಂಡ್ಬಾಕ್ಸಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ, ಇದು CI ಪರಿಸರದಲ್ಲಿ Chrome ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಏಕೆಂದರೆ ಸ್ಯಾಂಡ್ಬಾಕ್ಸಿಂಗ್ ಕೆಲವೊಮ್ಮೆ ನಿರ್ಬಂಧಿತ ಪರಿಸರದಲ್ಲಿ ಹೆಡ್ಲೆಸ್ Chrome ಕ್ರ್ಯಾಶ್ಗೆ ಕಾರಣವಾಗಬಹುದು.
- ChromeDriver ಆವೃತ್ತಿಯನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು ವಿಫಲವಾದರೆ ಹಿನ್ನಡೆ ಇದೆಯೇ?
- ಹೌದು, ನಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್ ಬಳಸುವ ಫಾಲ್ಬ್ಯಾಕ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ --latest_release ಹೊಂದಾಣಿಕೆಯ ಆವೃತ್ತಿಯು ವಿಫಲವಾದಲ್ಲಿ, ಸ್ಥಾಪಿಸಲಾದ Chrome ಆವೃತ್ತಿಯನ್ನು ಲೆಕ್ಕಿಸದೆ ChromeDriver ಲಭ್ಯವಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು.
- CI/CD ಪೈಪ್ಲೈನ್ಗಳಲ್ಲಿ Chrome ಮೆಮೊರಿ-ಸಂಬಂಧಿತ ಸಮಸ್ಯೆಗಳನ್ನು ನಾನು ಹೇಗೆ ತಪ್ಪಿಸಬಹುದು?
- ಬಳಸುತ್ತಿದೆ --disable-dev-shm-usage ಹಂಚಿದ ಮೆಮೊರಿಯನ್ನು ಮರುನಿರ್ದೇಶಿಸುತ್ತದೆ, CI ಪರಿಸರದಲ್ಲಿ ಸೀಮಿತ /dev/shm ಸ್ಥಳಾವಕಾಶದಿಂದಾಗಿ Chrome ಕ್ರ್ಯಾಶ್ಗಳನ್ನು ತಡೆಯುತ್ತದೆ.
- ನಾನು ಕ್ರೋಮ್ ಅನ್ನು ಹೆಡ್ಲೆಸ್ ಮೋಡ್ನಲ್ಲಿ ಡೀಬಗ್ ಮಾಡಬಹುದೇ?
- ಹೌದು, ಬಳಸುವುದು --remote-debugging-port ಮತ್ತು ಸ್ಥಳೀಯವಾಗಿ ಪರೀಕ್ಷೆಯನ್ನು ನಡೆಸುವುದು ನಿಮಗೆ ಹೆಡ್ಲೆಸ್ ಮೋಡ್ನಲ್ಲಿ ಡೀಬಗ್ ಮಾಡಲು Chrome DevTools ಅನ್ನು ತೆರೆಯಲು ಅನುಮತಿಸುತ್ತದೆ.
- WebDriverManager ChromeDriver ನವೀಕರಣಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ವಹಿಸುತ್ತದೆಯೇ?
- WebDriverManager ಸ್ಥಳೀಯವಾಗಿ ಚಾಲಕ ನವೀಕರಣಗಳನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ, ಆದರೆ CI/CD ಪೈಪ್ಲೈನ್ಗಳಲ್ಲಿ, ನಿರ್ದಿಷ್ಟ ಆವೃತ್ತಿಗಳನ್ನು ಹೊಂದಿಸುವುದು, ತೋರಿಸಿರುವಂತೆ, ಪುನರಾವರ್ತಿತ ನಿರ್ಮಾಣಗಳಿಗೆ ಹೆಚ್ಚು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿದೆ.
- ಇದರ ಉದ್ದೇಶವೇನು driver.quit() ಲಿಪಿಯಲ್ಲಿ?
- ಈ ಆಜ್ಞೆಯು Chrome ಅನ್ನು ಮುಚ್ಚುವ ಮೂಲಕ ಮತ್ತು WebDriver ಸೆಶನ್ ಅನ್ನು ಕೊನೆಗೊಳಿಸುವ ಮೂಲಕ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಿಡುಗಡೆ ಮಾಡುತ್ತದೆ, CI/CD ಪರಿಸರದಲ್ಲಿ ಮೆಮೊರಿ ಸೋರಿಕೆಯನ್ನು ತಡೆಯುತ್ತದೆ.
- GitHub ಕ್ರಿಯೆಗಳಲ್ಲಿ ನನ್ನ ಸೆಲೆನಿಯಮ್ ಸೆಟಪ್ ಅನ್ನು ನಾನು ಮಾಡುವ ಮೊದಲು ಹೇಗೆ ಪರೀಕ್ಷಿಸುವುದು?
- ಇದರೊಂದಿಗೆ ಸ್ಥಳೀಯವಾಗಿ ಪರೀಕ್ಷೆಗಳನ್ನು ನಡೆಸಲಾಗುತ್ತಿದೆ headless ಆಯ್ಕೆಗಳು ಮತ್ತು CI ಕಾನ್ಫಿಗರೇಶನ್ಗಳು GitHub ಗೆ ತಳ್ಳುವ ಮೊದಲು ಸಮಸ್ಯೆಗಳನ್ನು ಹಿಡಿಯಬಹುದು, ಡೀಬಗ್ ಮಾಡುವುದನ್ನು ಸುಲಭಗೊಳಿಸುತ್ತದೆ.
- CI ನಲ್ಲಿ ChromeDriver ಗೆ ನನಗೆ ಯಾವ ಅನುಮತಿಗಳು ಬೇಕು?
- ChromeDriver ಗೆ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಅನುಮತಿಗಳ ಅಗತ್ಯವಿದೆ, ಇದನ್ನು ಹೊಂದಿಸಲಾಗಿದೆ sudo chmod +x /usr/local/bin/chromedriver, GitHub ಕ್ರಿಯೆಗಳಲ್ಲಿ ಪರೀಕ್ಷೆಗಳನ್ನು ಯಶಸ್ವಿಯಾಗಿ ನಡೆಸಲು.
CI/CD ಪರೀಕ್ಷೆಗಳಿಗಾಗಿ ಹೆಡ್ಲೆಸ್ ಕ್ರೋಮ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವ ಕುರಿತು ಅಂತಿಮ ಆಲೋಚನೆಗಳು
GitHub ಕ್ರಿಯೆಗಳಲ್ಲಿ ಹೆಡ್ಲೆಸ್ ಕ್ರೋಮ್ನೊಂದಿಗೆ ಸೆಲೆನಿಯಮ್ ಪರೀಕ್ಷೆಗಳಿಗೆ ಸರಿಯಾದ ಸೆಟಪ್ ಅನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು ಸಮಯವನ್ನು ಉಳಿಸುತ್ತದೆ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. "DevToolsActivePort ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ" ನಂತಹ ದೋಷಗಳನ್ನು ಪರಿಹರಿಸುವುದು CI/CD ಪರೀಕ್ಷೆಯನ್ನು ಹೆಚ್ಚು ತಡೆರಹಿತವಾಗಿ ಮಾಡಬಹುದು ಮತ್ತು ಡೆವಲಪರ್ಗಳಿಗೆ ಕಡಿಮೆ ನಿರಾಶಾದಾಯಕವಾಗಿರುತ್ತದೆ.
ಜೋಡಿಸುವ ಮೂಲಕ ChromeDriver ಮತ್ತು ಕ್ರೋಮ್ ಆವೃತ್ತಿಗಳು ಮತ್ತು ಮೆಮೊರಿ-ಸಮರ್ಥ ಆಯ್ಕೆಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು, ಈ ವಿಧಾನವು ನಿರ್ಬಂಧಿತ ಪರಿಸರದಲ್ಲಿ ಪರೀಕ್ಷೆಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಡೆಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಪರೀಕ್ಷಾ ಅಡೆತಡೆಗಳ ಬಗ್ಗೆ ಚಿಂತಿಸದೆ ಡೆವಲಪರ್ಗಳು ತಮ್ಮ ಪ್ರಮುಖ ಕಾರ್ಯಗಳ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಲು ಇದು ಪ್ರಾಯೋಗಿಕ ಪರಿಹಾರವಾಗಿದೆ 🚀.
ಸೆಲೆನಿಯಮ್ ಮತ್ತು ಕ್ರೋಮ್ ಡ್ರೈವರ್ ಸಮಸ್ಯೆಗಳ ನಿವಾರಣೆಗಾಗಿ ಉಲ್ಲೇಖಗಳು ಮತ್ತು ಮೂಲ ಸಾಮಗ್ರಿಗಳು
- CI/CD ಪರಿಸರಕ್ಕಾಗಿ ಹೆಡ್ಲೆಸ್ ಕ್ರೋಮ್ನಲ್ಲಿ DevToolsActivePort ಸಮಸ್ಯೆಗಳನ್ನು ನಿಭಾಯಿಸಲು ವಿವರವಾದ ದೋಷನಿವಾರಣೆ ಮಾರ್ಗದರ್ಶಿ. ಸೆಲೆನಿಯಮ್ ವೆಬ್ಡ್ರೈವರ್ ಡಾಕ್ಯುಮೆಂಟೇಶನ್
- ನಿರಂತರ ಏಕೀಕರಣ ಸೆಟಪ್ಗಳಲ್ಲಿ Chrome ಮತ್ತು ChromeDriver ಆವೃತ್ತಿಗಳಿಗೆ ಸಮಗ್ರ ಸ್ಥಾಪನೆ ಮತ್ತು ಕಾನ್ಫಿಗರೇಶನ್ ಸೂಚನೆಗಳನ್ನು ಒದಗಿಸಲಾಗಿದೆ GitHub ಕ್ರಿಯೆಗಳ ದಾಖಲೆ
- ChromeDriver ಸೆಟಪ್, ಹೊಂದಾಣಿಕೆ ಮತ್ತು ಕಾನ್ಫಿಗರೇಶನ್ ಆಯ್ಕೆಗಳಿಗಾಗಿ ಹಂತ-ಹಂತದ ಪರಿಹಾರ ಲಭ್ಯವಿದೆ WebDriverManager ಡಾಕ್ಯುಮೆಂಟೇಶನ್
- CI/CD ಯಲ್ಲಿ, ವಿಶೇಷವಾಗಿ ನಿರ್ಬಂಧಿತ ಪರಿಸರದಲ್ಲಿ ಮೆಮೊರಿ ದಕ್ಷತೆಗಾಗಿ ಹೆಡ್ಲೆಸ್ ಕ್ರೋಮ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳ ಕುರಿತು ಉಲ್ಲೇಖ. ನಲ್ಲಿ ಇನ್ನಷ್ಟು ಓದಿ ಗೂಗಲ್ ಕ್ರೋಮ್ ಡೆವಲಪರ್ ಗೈಡ್