# Selenium प्रॉक्सी: स्टैटिक ISP IP के साथ Chrome और Firefox | ProxyJam

Selenium में Chrome और Firefox के लिए प्रॉक्सी कैसे सेट करें, --proxy-server में क्रेडेंशियल क्यों फ़ेल होते हैं, और IP व्हाइटलिस्ट उनकी जगह कैसे लेती है। जाँचा हुआ Python कोड।

- Canonical: https://proxyjam.com/hi/integrations/selenium/
- Updated: 2026-10-23
- Language: hi

Selenium के तहत Chrome या Firefox को एक स्टैटिक ISP पते से चलाएँ। इस पेज का हर सैंपल पब्लिश करने से पहले एक लोकल प्रॉक्सी पर चलाकर देखा गया, और जो काम नहीं आया, वह साफ़ बताया गया है।


Chrome में `--proxy-server=http://HOST:PORT` को आर्ग्युमेंट के रूप में दें; Firefox में options पर एक मैनुअल Proxy सेट करें। Firefox, Selenium के WebDriver BiDi हैंडलर `add_authentication_handler` के ज़रिए प्रॉक्सी के पासवर्ड प्रॉम्प्ट का जवाब दे सकता है। हमारे टेस्ट में Chrome ऐसा नहीं कर पाया: वह `--proxy-server` में क्रेडेंशियल को अनदेखा करता है, और दोनों BiDi हैंडलर का समय खत्म हो गया। Chrome के लिए, जिस IP से आपके टेस्ट चलते हैं उसे प्रॉक्सी की व्हाइटलिस्ट में डालें, और प्रॉक्सी को HTTP या SOCKS5 पर किसी क्रेडेंशियल की ज़रूरत नहीं रहती।


## Selenium में प्रॉक्सी सेट करें

1. **वह पब्लिक IP पता करें जिससे आपके टेस्ट चलते हैं** मशीन या CI runner का वह पता जो इंटरनेट को दिखता है, उसका लोकल पता नहीं। [What Is My IP](/hi/what-is-my-ip/) इसे दिखाता है।
2. **उस IP को प्रॉक्सी की व्हाइटलिस्ट में डालें** एक API कॉल, `PUT /orders/ORDER_ID/whitelist`, या MCP सर्वर का `set_proxy_whitelist` टूल; डैशबोर्ड में इसके लिए अभी कोई कंट्रोल नहीं है। व्हाइटलिस्ट IPv4 पते लेती है और हर बार सूची को बदल देती है। जब तक व्हाइटलिस्ट सेट है, प्रॉक्सी सिर्फ़ सूची में दिए पतों को आने देती है और उस ऑर्डर के लिए यूज़रनेम और पासवर्ड काम करना बंद कर देते हैं; खाली सूची भेजने से व्हाइटलिस्ट बंद हो जाती है और पासवर्ड से लॉगिन फिर काम करने लगता है।
3. **ऑर्डर से host और port कॉपी करें** मेरे प्रॉक्सी से या API से। व्हाइटलिस्ट लगी होने पर यूज़रनेम और पासवर्ड की ज़रूरत नहीं है।
4. **ब्राउज़र के options पर प्रॉक्सी सेट करें** Chrome: `--proxy-server=http://HOST:PORT`, या प्रॉक्सी को SOCKS5 पर स्विच करने के बाद `socks5://HOST:PORT`. Firefox: `httpProxy` और `sslProxy` के साथ एक मैनुअल `Proxy`.
5. **एक पेज खोलें और बाहर जाने वाला पता जाँचें** चलाए जा रहे ब्राउज़र में एक बार What Is My IP लोड करें और पक्का करें कि वह आपका खरीदा हुआ पता दिखाता है, फिर पूरा सुइट चलाएँ।

## Python में Selenium 4 के लिए जाँचा हुआ कोड

Firefox पासवर्ड वाला सैंपल यूज़रनेम और पासवर्ड भेजता है, इसलिए उसके लिए ऐसा ऑर्डर चाहिए जिस पर कोई व्हाइटलिस्ट सेट न हो। बाकी ब्राउज़र सैंपल मानकर चलते हैं कि आपकी मशीन का IP प्रॉक्सी की व्हाइटलिस्ट में है; SOCKS5 वाले के लिए पहले प्रॉक्सी को SOCKS5 पर स्विच करना भी ज़रूरी है, जिससे नया port मिलता है। बड़े अक्षरों वाली वैल्यू की जगह अपने ऑर्डर की वैल्यू डालें, और व्हाइटलिस्ट कॉल में ORDER_ID, YOUR_API_KEY और YOUR_IP बदलें।

### Chrome

HTTP प्रॉक्सी से Chrome।

```
# The proxy has your machine's IP on its whitelist, so no credentials
# are sent: Chrome ignores them in --proxy-server anyway.
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")  # remove to watch the browser
options.add_argument("--proxy-server=http://HOST:PORT")

driver = webdriver.Chrome(options=options)
try:
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
```

### Firefox पासवर्ड

प्रॉक्सी के पासवर्ड प्रॉम्प्ट का जवाब देता Firefox।

```
# Selenium 4.51+ with WebDriver BiDi; pip install selenium
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType

options = webdriver.FirefoxOptions()
options.enable_bidi = True
options.add_argument("-headless")  # remove to watch the browser
options.proxy = Proxy({
    "proxyType": ProxyType.MANUAL,
    "httpProxy": "HOST:PORT",
    "sslProxy": "HOST:PORT",
})

driver = webdriver.Firefox(options=options)
try:
    # Answers the proxy's 407 with your username and password
    driver.network.add_authentication_handler(
        lambda request: request.provide_credentials("USERNAME", "PASSWORD")
    )
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
```

### Firefox

व्हाइटलिस्ट वाली HTTP प्रॉक्सी से Firefox।

```
# The proxy has your machine's IP on its whitelist, so no credentials
# are sent. For a password instead, see selenium-firefox-auth.
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType

options = webdriver.FirefoxOptions()
options.add_argument("-headless")  # remove to watch the browser
options.proxy = Proxy({
    "proxyType": ProxyType.MANUAL,
    "httpProxy": "HOST:PORT",
    "sslProxy": "HOST:PORT",
})

driver = webdriver.Firefox(options=options)
try:
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
```

### Chrome SOCKS5

SOCKS5 प्रॉक्सी से Chrome।

```
# Switch the proxy to SOCKS5 first, then use the port the order shows.
# The whitelist applies to SOCKS5 as well, so no credentials here either.
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")  # remove to watch the browser
options.add_argument("--proxy-server=socks5://HOST:PORT")

driver = webdriver.Chrome(options=options)
try:
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
```

### व्हाइटलिस्ट कॉल

अपना IP प्रॉक्सी की व्हाइटलिस्ट में जोड़ें।

```
# Put the public IPv4 address your code runs from on the proxy's
# whitelist. Replaces the list; an empty list turns whitelisting off
# and the proxy falls back to username and password.
curl -X PUT "https://api.proxyjam.com/public/v1/orders/ORDER_ID/whitelist" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"whitelisted_ips": ["YOUR_IP"]}'
```


## Selenium में प्रॉक्सी विकल्प, ब्राउज़र के हिसाब से

|  | HTTP प्रॉक्सी | SOCKS5 प्रॉक्सी | यूज़रनेम और पासवर्ड |
|---|---|---|---|
| Chrome | --proxy-server=http://HOST:PORT | --proxy-server=socks5://HOST:PORT | --proxy-server में अनदेखा; व्हाइटलिस्ट इस्तेमाल करें |
| Firefox | httpProxy और sslProxy के साथ Proxy | socksProxy और socksVersion 5 के साथ Proxy | HTTP पर add_authentication_handler (BiDi) से काम कर गया |
| Chrome, BiDi हैंडलर | add_auth_handler और add_authentication_handler दोनों का समय खत्म हो गया | जाँचा नहीं गया | जब तक Selenium या Chrome का कोई बाद का वर्शन इसे न बदले, व्हाइटलिस्ट इस्तेमाल करें |

2026-10-22 को Selenium 4.51, headless मोड में Chrome और Firefox के साथ जाँचा गया, एक लोकल प्रॉक्सी पर जो एक port पर पासवर्ड माँगती थी और दूसरे port पर व्हाइटलिस्ट वाले क्लाइंट को स्वीकार करती थी।


## ब्राउज़र टेस्ट को इस पते से क्या मिलता है

- **ब्राउज़र में कोई पासवर्ड नहीं:** व्हाइटलिस्ट आपके runner के IPv4 पते को आने देती है, इसलिए options या लॉग में कोई सीक्रेट नहीं रहता
- **ब्राउज़र के दोनों scheme:** आम पेजों के लिए http://, ऑर्डर स्विच होने के बाद socks5://
- **हर रन पर वही स्रोत:** कल का रन और आज का रन एक ही IP से निकलते हैं, जो पूरी बिलिंग अवधि तक बना रहता है
- **समानांतर ड्राइवर:** कई ड्राइवर एक पता साझा कर सकते हैं, या हर ड्राइवर को अपना पता मिल सकता है

## Selenium और प्रॉक्सी में क्या गलत होता है

### --proxy-server के अंदर क्रेडेंशियल

Chrome उस आर्ग्युमेंट से यूज़रनेम और पासवर्ड बिना किसी error के हटा देता है, उनके बिना कनेक्ट होता है और प्रॉक्सी से 407 पाता है। फिर पेज लोड नहीं होता, जो ऑथेंटिकेशन की नहीं, नेटवर्क की समस्या जैसा दिखता है।

### ड्राइवर का डाउनलोड प्रॉक्सी से होकर जाता है

जब Firefox के options में प्रॉक्सी होती है, तो Selenium Manager ड्राइवर को उसी प्रॉक्सी से डाउनलोड करता है। सिर्फ़ पासवर्ड वाली प्रॉक्सी पर यह डाउनलोड ब्राउज़र शुरू होने से पहले ही फ़ेल हो जाता है; व्हाइटलिस्ट के साथ यह सफल होता है।

### व्हाइटलिस्ट में गलत पता है

CI runner अक्सर आपके लैपटॉप से अलग पब्लिक IP से निकलता है, और कुछ runner हर रन पर बदल जाते हैं। उस पते को व्हाइटलिस्ट करें जिससे टेस्ट चलते हैं, और जब वह बदले तो उसे अपडेट करें, क्योंकि हर कॉल सूची को बदल देती है।

### स्विच से पहले ब्राउज़र में SOCKS5

HTTP पर सेट पता SOCKS5 का जवाब नहीं देता। पहले अपने ऑर्डर पर प्रॉक्सी स्विच करें और उसके बाद दिखने वाला port इस्तेमाल करें; सिर्फ़ आर्ग्युमेंट में scheme बदलने से ऐसा ब्राउज़र मिलता है जो कनेक्ट नहीं हो पाता।


## Selenium में प्रॉक्सी के बारे में सवाल

### Selenium में ऑथेंटिकेशन वाली प्रॉक्सी कैसे इस्तेमाल करें?

Firefox में WebDriver BiDi चालू करें और driver.network.add_authentication_handler से एक हैंडलर रजिस्टर करें जो यूज़रनेम और पासवर्ड दे; Selenium 4.51 के साथ यह तरीका काम कर गया। Chrome में हमारे टेस्ट में क्रेडेंशियल भेजने वाला कोई भी तरीका काम नहीं आया: वह प्रॉक्सी स्विच में उन्हें अनदेखा करता है, और दोनों BiDi हैंडलर का समय खत्म हो गया। Chrome के लिए वह पब्लिक IP व्हाइटलिस्ट करें जिससे आपके टेस्ट चलते हैं, और ब्राउज़र बिना किसी क्रेडेंशियल के कनेक्ट होता है।

### Python Selenium में Chrome के लिए प्रॉक्सी कैसे सेट करें?

ChromeOptions बनाएँ, आर्ग्युमेंट --proxy-server=http://HOST:PORT जोड़ें, और options को webdriver.Chrome को दें। SOCKS5 के लिए अपने ऑर्डर पर प्रॉक्सी को SOCKS5 पर स्विच करें और उसके बाद ऑर्डर जो port दिखाए, उसके साथ socks5://HOST:PORT इस्तेमाल करें।

### क्या IP व्हाइटलिस्ट SOCKS5 के साथ काम करती है?

हाँ। व्हाइटलिस्ट वाला पता HTTP पर और SOCKS5 पर बिना क्रेडेंशियल के स्वीकार होता है, और इसी से Chrome में SOCKS5 इस्तेमाल हो पाता है, क्योंकि Chrome SOCKS5 यूज़रनेम और पासवर्ड नहीं भेज सकता। व्हाइटलिस्ट API या MCP सर्वर से सेट होती है और IPv4 पते लेती है।

### क्या टेस्ट सुइट का हर ब्राउज़र अलग प्रॉक्सी इस्तेमाल कर सकता है?

हाँ, हर ड्राइवर पर एक: प्रॉक्सी उन options का हिस्सा है जिनसे ड्राइवर शुरू होता है, इसलिए दो ड्राइवर दो पते इस्तेमाल कर सकते हैं। चल रहे Chrome की प्रॉक्सी बदलना संभव नहीं है; इसकी जगह नया ड्राइवर शुरू करें।

### क्या लंबा सुइट बीच में पते बदल देगा?

नहीं। ड्राइवर जिस पते से शुरू हुआ, वही पता बंद होने तक रखता है, और खुद पता पूरी बिलिंग अवधि तक आपके नाम रहता है। जिन सुइट को एक साथ कई स्रोत चाहिए, उन्हें ऐसा पूल चाहिए जो पते बदलता हो, और वह अभी बिक्री पर नहीं है।

### मैं प्रॉक्सी किस काम के लिए इस्तेमाल कर सकता हूँ?

अपने प्रोडक्ट के एंड-टू-एंड टेस्ट, अपने स्टोरफ़्रंट की क्षेत्रीय जाँच, विज्ञापन सत्यापन, कीमत रिसर्च और ब्रांड सुरक्षा, ये सब हमारी स्वीकार्य उपयोग नीति के तहत बिना पूर्व समीक्षा के चलते हैं। CAPTCHA, बॉट से बचाव, रेट लिमिट या अकाउंट बैन को हराने के लिए ब्राउज़र चलाना अलग बात है: पता ऐसा नहीं करता, और नीति इसकी कोशिश पर रोक लगाती है।


स्टैटिक पता ब्राउज़र टेस्ट को दोहराने लायक बनाए रखता है: अगले हफ़्ते चलाया गया वही सुइट उसी जगह से पहुँचता है, इसलिए नतीजे में कोई बदलाव साइट की वजह से होता है। [ISP प्रॉक्सी](/hi/isp-proxies/) पर एक पता ऑर्डर करें, [कीमतें](/hi/pricing/) देखें, और [Python requests](/hi/integrations/python-requests/) गाइड से वही पता सादी HTTP कॉल में सेट करें।



## स्रोत

- [Selenium documentation, Proxy](https://www.selenium.dev/documentation/webdriver/drivers/options/#proxy): ब्राउज़र के options पर प्रॉक्सी सेट करना
- [Selenium documentation, Selenium Manager](https://www.selenium.dev/documentation/selenium_manager/): ड्राइवर कैसे डाउनलोड होते हैं, और यह कि इसके लिए कॉन्फ़िगर की गई प्रॉक्सी इस्तेमाल होती है
- [Chromium, network settings](https://www.chromium.org/developers/design-documents/network-settings/): `--proxy-server` स्विच और उसके scheme




Selenium खुद ट्रैफ़िक रूट नहीं करता: वह एक ब्राउज़र शुरू करता है और प्रॉक्सी को ब्राउज़र के options के हिस्से के रूप में उसे सौंप देता है। इसीलिए Chrome और Firefox में जवाब अलग है, और इसीलिए प्रॉक्सी ऑथेंटिकेशन वह जगह है जहाँ ज़्यादातर सेटअप फ़ेल होते हैं।

## Chrome और Firefox के लिए Python Selenium प्रॉक्सी

Chrome प्रॉक्सी को कमांड-लाइन स्विच से पढ़ता है, Firefox अपने options पर एक प्रॉक्सी ऑब्जेक्ट से। दोनों व्हाइटलिस्ट वाली प्रॉक्सी को बिना किसी और सेटअप के स्वीकार करते हैं; Firefox WebDriver BiDi के ज़रिए प्रॉक्सी के पासवर्ड प्रॉम्प्ट का जवाब भी दे सकता है, जो हमारे टेस्ट में Chrome ने नहीं किया।

