Can't click button after using an authentisized proxy (Python seleniumwire)

691 Views Asked by At

I'm trying to click "Add to Bag" button and with selenium it work's just fine, but after using selenium-wire with authentisized proxy server, although i can still get to site and click every other button and it works, after clicking this one nothing happens. I tried multiple proxies and even tested them using external software and checked my ip on https://www.whatismyip.com/.
I also tested the proxy manualy by adding it to firefox, navigating to page and clicking the same button and it worked. I'm working on this issue a second day and I don't know what I'm supposed to find and yes using authentisized proxies is a must.

The modules and the definion of proxies:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from seleniumwire import webdriver as web

options = {
    'proxy': {
        'http': 'http://user:pass@IP:Port',
        'https': 'https://user:pass@IP:Port',
        'no_proxy': 'localhost,127.0.0.1'
    }
}

driver = web.ChromeDriver(seleniumwire_options=options)
wait = WebDriverWait(driver, c_default_wait)

Here is the code for clicking the button:

try:
    #This actually finds the button (i do some staff on this page and it is loaded and clickible)
    buy_button = driver.find_element_by_xpath("/html/body/div[1]/div[2]/div/div/div[3]/div[3]/div[2]/div/div/form/div[2]/button[1]") 
    print(buy_button.text)
except:
    driver.close()

while inbag == 0:
        try:
            checkout_button = wait.until(EC.visibility_of_element_located((By.XPATH, "/html/body/div[1]/div[2]/div/div/div[4]/div/div/div/div/div/div/div/div/div/div[3]/div/button[2]")))
        except:
            buy_button.click()
        else:
            print(checkout_button.text)
            checkout_button.click()
            inbag = 1

And here is the bash output which repeats itself:

Traceback (most recent call last):
  File "%Repo_path%\env\lib\site-packages\seleniumwire\proxy\proxy2.py", line 91, in proxy_request
    conn.request(self.command, path, req_body, dict(req.headers))
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\http\client.py", line 1262, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\http\client.py", line 1308, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\http\client.py", line 1257, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\http\client.py", line 1028, in _send_output
    self.send(msg)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\http\client.py", line 968, in send
    self.connect()
  File "D:\Repos\BOOTS-BOT\env\lib\site-packages\seleniumwire\proxy\proxy2.py", line 368, in connect
    super().connect()
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\http\client.py", line 1424, in connect
    super().connect()
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\http\client.py", line 944, in connect
    self._tunnel()
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\http\client.py", line 918, in _tunnel
    (version, code, message) = response._read_status()
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\http\client.py", line 267, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\socket.py", line 589, in readinto
    return self._sock.recv_into(b)
socket.timeout: timed out
Error making request

Update:
We found, that the problem lies in CORS POLICY, which we fixed as follows:

  • We changed to Chrome (already rewritten above)
chrome_options.add_argument("--disable-web-security")

But unfortunately few steps further we encountered simular problem with loging in, where the browser reports Error: 400 Bad request and Error: 403 Forbiden Access

0

There are 0 best solutions below