I checked the website you are working on and found the same error while locating the button. Then I got the mistake I wa doing most probably you also would be doing the same mistake. The mistake I was doing was I was inspecting the element before it was even loaded. Hence you can use this:-
You can try using explicit waits
// wait for element present
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "getCoupon"))
element.click()
// wait until element get visible
element = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, "getCoupon"))
element.click()