हम पायथन में Selenium webdriver के साथ प्रॉक्सी चला सकते हैं। प्रॉक्सी स्थानीयकरण परीक्षण (localization testing) करने के लिए एक आवश्यक घटक है। हम एक ई-कॉमर्स एप्लिकेशन ले सकते हैं और जांच सकते हैं कि क्या उपयोगकर्ता स्थान के अनुसार भाषा और मुद्रा दृश्यमान है।
परीक्षणों के भीतर प्रॉक्सी की मदद से, हम सत्यापित कर सकते हैं कि वेबसाइट उपयोगकर्ता इंटरफेस स्थान से मेल खाता है या नहीं। हमें नीचे दिए गए चरणों के साथ प्रॉक्सी सेट करना होगा:
- Selenium पैकेज से webdriver इम्पोर्ट करें
- प्रॉक्सी सर्वर पता परिभाषित करें
- ChromeOptions क्लास का ऑब्जेक्ट बनाएं
- प्रॉक्सी के साथ ChromeOptions का संचार
- Chrome() ऑब्जेक्ट में विकल्प जोड़ें
उदाहरण
कोड कार्यान्वयन:
from selenium import webdriver
# प्रॉक्सी सर्वर परिभाषा
proxy = "128.21.0.0:8080"
# ChromeOptions क्लास कॉन्फ़िगर करें
chrome_options = webdriver.ChromeOptions()
# विकल्पों में प्रॉक्सी पैरामीटर
chrome_options.add_argument('--proxy-server=%s' % proxy)
# Chrome() में विकल्प जोड़ें
driver = webdriver.Chrome(options=chrome_options)
driver.implicitly_wait(0.6)
driver.get("https://www.tutorialspoint.com/index.htm")
फिर, यह जांचने के लिए कि क्या सर्च फ़ील्ड में वर्तमान उपयोगकर्ता पता मौजूद है, हम नीचे दिया गया कोड स्निपेट जोड़ेंगे:
def checkL(self):
self.driver.get(self.url)
st = self.driver.find_element_by_xpath('//*[@id="loc"]')
# असर्शन के साथ स्थान जांचें
self.assertEqual('India', st.text)
यदि हमें एक से अधिक स्थानों को सत्यापित करना है, तो हम एक मेथड बना सकते हैं और प्रॉक्सी पते को तर्क के रूप में पास कर सकते हैं।
सुधार और सर्वोत्तम अभ्यास:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
def create_driver_with_proxy(proxy_address):
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy_address}')
# हेडलेस मोड के लिए (वैकल्पिक)
# chrome_options.add_argument('--headless')
driver = webdriver.Chrome(options=chrome_options)
return driver
# उपयोग
proxy = "128.21.0.0:8080"
driver = create_driver_with_proxy(proxy)
driver.get("https://www.example.com")
# तत्व की प्रतीक्षा करें
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "loc"))
)
print(element.text)
driver.quit()
प्रॉक्सी प्रकार:
- HTTP प्रॉक्सी:
--proxy-server=https://ip:port - HTTPS प्रॉक्सी:
--proxy-server=https://ip:port - SOCKS5 प्रॉक्सी:
--proxy-server=socks5://ip:port - प्रमाणीकरण के साथ:
--proxy-server=user:pass@ip:port