Даже не за еду: он же не сделал заказ.
мыслить о коде за мысль о еде…
Баг в том, что они разрешают делать заказ, когда у тебя в корзине только "подарочная" еда. Обычно такие подарки делают в дополнение к следующему заказу. Тогда как бы им все равно, генерируй коды сколько угодно, если это все равно стимулирует их продажи.
Додо позволяет вводить промо коды только с подарочной пиццой.

После четвёртого раза мне стало стыдно и я отписался в техподдержку. Мне тоже ничего не ответили.
Но потом я заметил, что больше оно так не работает.
А вообще, будьте честными.
Как минимум у Сбера по моему оплатить заказ если он отрицательныц не выйдет, валидация не даст, это если картой платить такой заказ
я мог бы запрограммировать заказ 1000 чесночных пицц из каждого магазина Papa John's по всей ВеликобританииВозможно, отменили бы заказ и вернули деньги
Впрочем соглашусь, даже капча отсекла бы любопытных студентов, а люди, которые могут это обойти стали бы заморачиваться только искусства ради. А это маловероятно для временной акции.
Но и разработчиков/дизайнеров/менеджеров (или кто там это всё делал и придумывал?) тоже понимаю. Для создания таких ограничений тоже нужно больше компетенций и/или трудозатрат, что в конечном итоге поднимают стоимость и приводит к невозможности проведений этих акций. Ну и возможно они научились на этой истории чему-нибудь.
так можно зависнуть навсегда, не всё так просто с wait until
wait = WebDriverWait(driver, 50)
wait.until(EC.visibility_of_element_located((By.ID, «login-logo»)))
По поводу использования задержки для имитации кликов: автор установил значение в 1 секунду, хотя можно было бы рандомизировать это значение.
Кстати, если вы планируете использовать задержку для загрузки элементов или ajax, то в selenium есть специальная функция для этого. Привожу пример в с#:
Browser.Manage().Timeouts().ImplicityWait( TimeSpan.FromSeconds(10) );
В таком случае браузер будет ждать 10 секунд на загрузку элемента, прежде чем выдаст исключение. Это значение можно менять на ходу и это очень удобно.
Как вариант, можно было заглянуть в консоль разработчика, посмотреть какой API запрос шлёт фронт беку после заполнения опроса и не заморачиваться с Selenium.
Как я получил пожизненный запас чесночной пиццы с помощью Python и Selenium