
Rajinder Singh
Deep Learning Researcher

सेलेनियम एक ओपन-सोर्स ऑटोमेशन टेस्टिंग टूल है जिसका मुख्य रूप से वेब एप्लिकेशन को ऑटोमेट करने के लिए उपयोग किया जाता है। इसका उपयोग आमतौर पर वेब स्क्रैपिंग और वेबसाइट इंटरैक्शन को ऑटोमेट करने के लिए भी किया जाता है। सेलेनियम ब्राउज़र में विभिन्न उपयोगकर्ता व्यवहारों का अनुकरण कर सकता है, जैसे क्लिक करना, टाइप करना, स्क्रॉल करना और पेज बदलना। इसे मूल रूप से 2004 में जेसन हगिंस द्वारा विकसित किया गया था और अब इसका रखरखाव सेलेनियम प्रोजेक्ट टीम द्वारा किया जाता है। सेलेनियम कई प्रोग्रामिंग भाषाओं का समर्थन करता है, जिनमें पायथन, जावा, C#, रूबी और जावास्क्रिप्ट शामिल हैं।
सेलेनियम में निम्नलिखित मुख्य घटक होते हैं:
सेलेनियम वेबड्राइवर (सबसे अधिक उपयोग किया जाता है)
chromedriver या geckodriver।सेलेनियम IDE
सेलेनियम ग्रिड
पायथन में सेलेनियम का उपयोग करने के लिए:
pip install selenium
क्रोम के साथ सेलेनियम का उपयोग करने के लिए, Github से अपने क्रोम संस्करण से मेल खाने वाला chromedriver डाउनलोड करें
उदाहरण: CapSolver के ब्लॉग से सभी ब्लॉग पोस्ट शीर्षक प्राप्त करने के लिए सेलेनियम का उपयोग करना:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# chromedriver पथ निर्दिष्ट करें (यदि पहले से ही PATH में जोड़ा गया है, तो इसे छोड़ा जा सकता है)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
try:
driver.get("https://www.capsolver.com/blog/All")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, 'h5')))
h5_elements = driver.find_elements(By.TAG_NAME, "h5")
for el in h5_elements:
print(el.text.strip())
finally:
driver.quit()
सेलेनियम एक शक्तिशाली टूल है जो नियमित ब्राउज़र की तरह ब्राउज़र एक्सटेंशन लोड करने का समर्थन करता है।
आधिकारिक CapSolver GitHub से नवीनतम एक्सटेंशन .zip पैकेज डाउनलोड करें और इसे अनज़िप करें:
👉 https://github.com/capsolver/capsolver-browser-extension/releases
सेलेनियम के स्टार्टअप विकल्पों में, एक्सटेंशन पथ निर्दिष्ट करने के लिए load-extension तर्क का उपयोग करें:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("load-extension=/path/to/capSolver extension")
# chromedriver पथ निर्दिष्ट करें (यदि पहले से ही PATH में है तो छोड़ दें)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
try:
driver.get("https://www.capsolver.com/blog/All")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.TAG_NAME, 'h5')))
h5_elements = driver.find_elements(By.TAG_NAME, "h5")
for el in h5_elements:
print(el.text.strip())
finally:
driver.quit()
⚠️ नोट: यदि आप क्रोम v137 का उपयोग कर रहे हैं, तो आपको एक अतिरिक्त तर्क जोड़ने की आवश्यकता हो सकती है:
chrome_options.add_argument("--disable-features=DisableLoadExtensionCommandLineSwitch")
अधिक विवरण: SeleniumHQ। विभिन्न संस्करण अलग तरह से व्यवहार कर सकते हैं—अपने परिवेश के अनुसार समायोजित करें।
reCAPTCHA, Cloudflare Turnstile, AWS WAF और GeeTest जैसे CAPTCHA का उपयोग हजारों वेबसाइटों पर व्यापक रूप से किया जाता है। हालाँकि, उनकी DOM संरचनाएँ साइटों पर अधिकांशतः सुसंगत रहती हैं। CapSolver एक्सटेंशन स्वचालित रूप से उनकी विशिष्ट विशेषताओं के आधार पर इन CAPTCHA का पता लगा सकता है और उन्हें हल कर सकता है—किसी मैन्युअल इंटरैक्शन की आवश्यकता नहीं है।
आइए reCAPTCHA v2 को एक उदाहरण के रूप में लें और प्रदर्शित करें कि इसे बायपास करने के लिए सेलेनियम के भीतर CapSolver एक्सटेंशन का उपयोग कैसे करें।
(नोट: जब तक अन्यथा नहीं कहा जाता है, तब तक निम्न डेमो click मोड का उपयोग करता है: /assets/config.js → reCaptchaMode: 'click' में सेट करें)
🛠️ एक्सटेंशन को अनज़िप करना न भूलें और
/assets/config.jsमें अपनाapiKeyकॉन्फ़िगर करें
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# चरण 1: GitHub से एक्सटेंशन प्राप्त करें: https://github.com/capsolver/capsolver-browser-extension/releases
# चरण 2: एक्सटेंशन को अनज़िप करें और /assets/config.js में अपना apiKey सेट करें
chrome_options.add_argument("load-extension=/path/to/CapSolver Browser Extension-v1.16.0")
# chromedriver पथ निर्दिष्ट करें (यदि पहले से ही PATH में है तो छोड़ दें)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
try:
driver.get("https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]')))
# एक्सटेंशन स्वचालित रूप से reCAPTCHA का पता लगाएगा और उसे हल करेगा
time.sleep(15)
# हल करने के बाद, सबमिट बटन पर क्लिक करें
submit_button = driver.find_element(By.CSS_SELECTOR, 'button[type="submit"]')
submit_button.click()
time.sleep(3)
except Exception as error:
print(error)
finally:
driver.quit()
CapSolver एक्सटेंशन कई उपयोगी कॉन्फ़िगरेशन विकल्पों का भी समर्थन करता है। सभी सेटिंग्स को
/assets/config.jsफ़ाइल में समायोजित किया जा सकता है।
solvedCallback कॉन्फ़िगरेशन विकल्पपिछले उदाहरण में, पेज लोड होने के बाद सबमिट बटन पर क्लिक करने से पहले हमने 15 सेकंड का इंतजार किया। यह प्रतीक्षा अवधि CapSolver एक्सटेंशन को reCAPTCHA को स्वचालित रूप से हल करने के लिए पर्याप्त समय देने के लिए थी।
हालांकि, यह तरीका सुंदर नहीं है। व्यवहार में, CAPTCHA को हल करने में 15 सेकंड से बहुत कम समय लग सकता है, या धीमे नेटवर्क के मामलों में, 15 सेकंड से अधिक समय लग सकता है।
इसे हल करने के लिए, CapSolver एक कॉन्फ़िगरेशन विकल्प प्रदान करता है जिसे solvedCallback कहा जाता है। यह आपको एक कॉलबैक फ़ंक्शन परिभाषित करने की अनुमति देता है जो CAPTCHA के सफलतापूर्वक हल होने के बाद ट्रिगर होता है। आप /assets/config.js में solvedCallback विकल्प पा सकते हैं, और आप फ़ंक्शन नाम को अनुकूलित कर सकते हैं—डिफ़ॉल्ट रूप से, यह captchaSolvedCallback है।
यदि आप Puppeteer या Playwright का उपयोग कर रहे हैं, तो आप page.exposeFunction विधि का उपयोग करके इस कॉलबैक फ़ंक्शन को ब्राउज़र संदर्भ में उजागर कर सकते हैं। देखें:
पायथन + सेलेनियम के बारे में क्या?
दुर्भाग्य से, पायथन का सेलेनियम page.exposeFunction के बराबर बिल्ट-इन प्रदान नहीं करता है, इसलिए इस परिवेश में solvedCallback सुविधा का पूरी तरह से उपयोग नहीं किया जा सकता है।
इसके बजाय, हम यह निर्धारित करने के लिए DOM अवलोकन का उपयोग करने की सलाह देते हैं कि क्या CAPTCHA हल हो गया है। उदाहरण के लिए, आप जांच सकते हैं कि क्या **"मैं रोबोट नहीं हूँ" चेकबॉक्स गायब हो गया है या चेकमार्क (✔) में बदल गया है, यह दर्शाता है कि सत्यापन पूरा हो गया है।
आइए इस रणनीति का उपयोग करके पिछले उदाहरण में सुधार करें:
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# चरण 1: GitHub से एक्सटेंशन प्राप्त करें: https://github.com/capsolver/capsolver-browser-extension/releases
# चरण 2: एक्सटेंशन को अनज़िप करें और /assets/config.js में अपना apiKey सेट करें
chrome_options.add_argument("load-extension=/path/to/CapSolver Browser Extension-v1.16.0")
# chromedriver पथ निर्दिष्ट करें (यदि पहले से ही PATH में है तो छोड़ दें)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
def check_recaptcha_status(driver):
try:
iframe = driver.find_element(By.CSS_SELECTOR, 'iframe[src*="recaptcha"]')
driver.switch_to.frame(iframe)
# जांचें कि क्या क्लास नाम इंगित करता है कि चेकबॉक्स चेक किया गया है
recaptcha_anchor = driver.find_element(By.ID, "recaptcha-anchor")
class_list = recaptcha_anchor.get_attribute("class")
driver.switch_to.default_content()
if "recaptcha-checkbox-checked" in class_list.split():
return True
else:
return False
except Exception as e:
print(f"Failed to check reCAPTCHA status: {e}")
driver.switch_to.default_content()
return False
try:
driver.get("https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]')))
# एक्सटेंशन स्वचालित रूप से CAPTCHA को पहचान लेगा और उसे हल कर देगा।
# निश्चित समय सोने के बजाय, समय-समय पर जांच करें।
timeout = 30
start_time = time.time()
while time.time() - start_time < timeout:
if check_recaptcha_status(driver):
print("reCAPTCHA verification successful!")
submit_button = driver.find_element(By.CSS_SELECTOR, 'button[type="submit"]')
submit_button.click()
time.sleep(3)
driver.quit()
break
time.sleep(1)
except Exception as error:
print(error)
finally:
driver.quit()
manualSolving कॉन्फ़िगरेशन विकल्पपिछले उदाहरणों में, CAPTCHA समाधान प्रक्रिया पेज के लोड होने के साथ ही स्वचालित रूप से शुरू हो जाती है। हालाँकि, कुछ मामलों में, CAPTCHA सॉल्वर को ट्रिगर करने से पहले आपको पहले अन्य क्रियाएँ करने की आवश्यकता हो सकती है—जैसे उपयोगकर्ता नाम और पासवर्ड भरना। CAPTCHA को बहुत जल्दी हल करने से सबमिशन से पहले टोकन की समय सीमा समाप्त हो सकती है।
manualSolving विकल्प को इस समस्या को हल करने के लिए डिज़ाइन किया गया है। /assets/config.js में manualSolving: true सेट करके, आप निम्नलिखित दो विधियों में से किसी एक का उपयोग करके CAPTCHA समाधान को मैन्युअल रूप से ट्रिगर कर सकते हैं:
window.postMessage({ type: 'capsolverSolve' });निम्नलिखित उदाहरण दर्शाता है कि दोनों विधियों का उपयोग कैसे करें:
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# चरण 1: GitHub से एक्सटेंशन प्राप्त करें (https://github.com/capsolver/capsolver-browser-extension/releases)
# चरण 2: एक्सटेंशन को अनज़िप करें और /assets/config.js में अपना apiKey कॉन्फ़िगर करें
chrome_options.add_argument("load-extension=/path/to/CapSolver Browser Extension-v1.16.0")
# chromedriver पथ निर्दिष्ट करें (यदि पहले से ही PATH में है तो छोड़ दें)
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
def check_recaptcha_status(driver):
try:
iframe = driver.find_element(By.CSS_SELECTOR, 'iframe[src*="recaptcha"]')
driver.switch_to.frame(iframe)
# निर्धारित करें कि क्या चेकबॉक्स चेक किया गया है
recaptcha_anchor = driver.find_element(By.ID, "recaptcha-anchor")
class_list = recaptcha_anchor.get_attribute("class")
driver.switch_to.default_content()
if "recaptcha-checkbox-checked" in class_list.split():
return True
else:
return False
except Exception as e:
print(f"Failed to check reCAPTCHA status: {e}")
driver.switch_to.default_content()
return False
try:
driver.get("https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]')))
# उपयोगकर्ता इनपुट का अनुकरण करें
driver.execute_script("""
const inputA = document.querySelector('input[name="ex-a"]');
inputA.value = 'username';
const inputB = document.querySelector('input[name="ex-b"]');
inputB.value = 'password';
""")
# अतिरिक्त कार्यों का अनुकरण करें
for i in range(1, 6):
time.sleep(1)
print(f"Waited {i} seconds...")
# CAPTCHA समाधान को ट्रिगर करें (manualSolving को config.js में true पर सेट किया जाना चाहिए)
print("Start solving captcha...")
# विधि 1: CapSolver बटन पर क्लिक करने का अनुकरण करें
try:
capsolver_button = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#capsolver-solver-tip-button")))
driver.execute_script("arguments[0].click();", capsolver_button)
except Exception as e:
print(f"Unable to find CapSolver button: {e}")
# विधि 2: postMessage के माध्यम से ट्रिगर करें (वैकल्पिक विधि)
# driver.execute_script("window.postMessage({ type: 'capsolverSolve' });")
# CAPTCHA के हल होने और फ़ॉर्म सबमिट करने की प्रतीक्षा करें
timeout = 30
```python
start_time = time.time()
जब तक time.time() - start_time < timeout:
if check_recaptcha_status(driver):
print("reCAPTCHA सत्यापन सफल!")
submit_button = driver.find_element(By.CSS_SELECTOR, 'button[type="submit"]')
submit_button.click()
time.sleep(3)
driver.quit()
break
time.sleep(1)
except Exception as error:
print(error)
finally:
driver.quit()
CapSolver Python और Golang दोनों के लिए आधिकारिक SDK प्रदान करता है, जो आपको न्यूनतम प्रयास के साथ CAPTCHA समाधान को एकीकृत करने की अनुमति देता है। कच्चे API (जहाँ आपको मैन्युअल रूप से createTask और getTaskResult को संभालना होगा) का उपयोग करने के विपरीत, SDK पूरी प्रक्रिया को सरल बनाते हैं।
आधिकारिक GitHub रिपॉजिटरी:
API की तरह ही, reCAPTCHA v2 को हल करने से पहले, आपको कौन से JSON पैरामीटर भेजने हैं, इस पर विस्तृत जानकारी के लिए दस्तावेज़ का संदर्भ लेना चाहिए:
🔗 https://docs.capsolver.com/en/guide/captcha/ReCaptchaV2/
इसके अतिरिक्त, आप आवश्यक JSON डेटा को जल्दी से निकालने के लिए CapSolver ब्राउज़र एक्सटेंशन का उपयोग कर सकते हैं:
🔗 https://www.capsolver.com/blog/reCAPTCHA/recaptcha-v3-solver-human-score
आइए इस पृष्ठ को एक उदाहरण के रूप में उपयोग करें:
👉 https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php
आवश्यक JSON पेलोड इस तरह दिखता है:
{
"type": "ReCaptchaV2TaskProxyLess",
"websiteKey": "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9",
"websiteURL": "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
}
pip install capsolver
import time
import capsolver
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
# अपनी CapSolver कॉन्फ़िगरेशन सेट करें
api_key = "YOUR_API_KEY"
site_key = "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9"
site_url = "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
captcha_type = 'ReCaptchaV2TaskProxyLess'
capsolver.api_key = api_key
try:
# SDK का उपयोग करके हल करें
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"websiteKey": site_key,
})
token = solution["gRecaptchaResponse"]
print("token:", token)
driver.get(site_url)
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, 'form[action="/recaptcha-v2-checkbox.php"]'))
)
driver.execute_script("""
const textarea = document.getElementById('g-recaptcha-response');
if (textarea) {
textarea.value = arguments[0];
}
""", token)
submit_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, 'button[type="submit"]'))
)
submit_button.click()
time.sleep(5)
except Exception as error:
print(error)
finally:
driver.quit()
API की तरह ही, हम साइट के साथ जारी रखेंगे:
👉 https://captcha.com/demos/features/captcha-demo.aspx
CAPTCHA इमेज में ID demoCaptcha_CaptchaImage है, और परिणाम इनपुट फ़ील्ड में ID captchaCode है।
एक ImageToTextTask में, आपको बस CapSolver को बेस64-एन्कोडेड इमेज पास करने की आवश्यकता है।
import time
import capsolver
import requests
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
service = Service(executable_path="chromedriver.exe")
driver = webdriver.Chrome(options=chrome_options, service=service)
# अपनी CapSolver कॉन्फ़िगरेशन सेट करें
api_key = "YOUR_API_KEY"
site_url = "https://captcha.com/demos/features/captcha-demo.aspx"
captcha_type = 'ImageToTextTask'
capsolver.api_key = api_key
try:
driver.get(site_url)
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, '#demoCaptcha_CaptchaImage'))
)
# इमेज से base64 स्ट्रिंग प्राप्त करें
captcha_src = driver.execute_script("""
const img = document.querySelector('img[id="demoCaptcha_CaptchaImage"]');
return img ? img.getAttribute('src') : null;
""")
if not captcha_src:
raise Exception("CAPTCHA इमेज प्राप्त करने में असमर्थ!")
base64_image = captcha_src.split(',')[1]
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"body": base64_image,
})
captcha_text = solution["text"]
print("Text:", captcha_text)
driver.execute_script("""
document.getElementById('captchaCode').value = arguments[0];
""", captcha_text)
validate_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, '#validateCaptchaButton'))
)
validate_button.click()
time.sleep(5)
except Exception as error:
print(error)
finally:
driver.quit()
CapSolver एक्सटेंशन की विशेषता वाले डेमो वीडियो:
इसके अतिरिक्त, CapSolver एक डेवलपर राजस्व साझाकरण कार्यक्रम प्रदान करता है, जिससे डेवलपर्स और पार्टनर CapSolver समाधानों को एकीकृत करने या उनका प्रचार करके कमीशन अर्जित कर सकते हैं। दूसरों को कुशलतापूर्वक कैप्चा को हल करने में मदद करते हुए अपने काम का मुद्रीकरण करने का यह एक शानदार तरीका है। पूर्ण विवरण के लिए, देखें:
CapSolver डेवलपर योजना
इस गाइड ने आपको CAPTCHA को संभालने के लिए Selenium को CapSolver के साथ प्रभावी ढंग से एकीकृत करना सिखाया है। हमने वेब ऑटोमेशन के लिए Selenium की मुख्य विशेषताओं को शामिल किया और दो मुख्य CapSolver एकीकरण विधियों को उजागर किया:
जानें कि reCAPTCHA v3 स्कोर 0.0 से 1.0 का क्या अर्थ है, सीमा कैसे काम करती हैं, और CapSolver अधिकृत स्कोर-आधारित परीक्षण में कैसे फिट बैठता है।

CapSolver की खोज करें, 2026 में AI स्वचालन के लिए प्रमुख नो-कोड CAPTCHA सॉल्वर, कोडिंग के बिना कार्य प्रक्रियाओं को सुगम बनाएं और डेटा एकत्रीकरण में सुधार करें। अपने मुख्य विशेषताओं, लाभों और नैतिक उपयोग के बारे में जानें।
