Elvopresla
Elvopresla

Reputation: 147

Selenium Chrome WebDriver doesn't use proxy

I'm using Selenium webdriver to open a webpage and I set up a proxy for the driver to use. The code is listed below:

PATH = "C:\Program Files (x86)\chromedriver.exe"
PROXY = "212.237.16.60:3128"  # IP:PORT or HOST:PORT

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={PROXY}')


proxy = Proxy()
proxy.auto_detect = False
proxy.http_proxy = PROXY
proxy.sslProxy = PROXY
proxy.socks_proxy = PROXY
capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)

driver = webdriver.Chrome(PATH, chrome_options=chrome_options,desired_capabilities=capabilities)
driver.get("https://whatismyipaddress.com")

The problem is that the web driver is not using the given proxy and it accesses the page with my normal IP. I already tried every type of code I could find on the internet and it didn't work. I also tried to set a proxy directly in my pc settings and when I open a normal chrome page it works fine (it's not a proxy server problem then), but if I open a page with the driver it still uses my normal IP and somehow bypasses the proxy. I also tried changing the proxy settings of the IDE (pycharm) and still it's not working. I'm out of ideas, could someone help me?

Upvotes: 2

Views: 8619

Answers (1)

Kamalesh S
Kamalesh S

Reputation: 550

This should work.

Code snippet-

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
PROXY = "212.237.16.60:3128"

#add proxy in chrome_options
chrome_options.add_argument(f'--proxy-server={PROXY}')

driver = webdriver.Chrome(PATH,options=chrome_options)

#to check new IP
driver.get("https://api.ipify.org/?format=json")

Note:- chrome_options is deprecated now, you have to use options instead

Upvotes: 4

Related Questions