Как реализовать задержку без использования time.sleep

Сделал функцию очистки корзины в инет магазине. Без time.sleep, получаю ошибку ElementClickInterceptedException, подскажите возможно как то использовать явное ожидание вместо time.sleep?

# Получаем список кнопок удаления напротив каждого товара
def get_cart_goods(self):
    WebDriverWait(self.driver, 30).until(EC.element_to_be_clickable((By.XPATH, 
       self.cart_goods)))
    return self.driver.find_elements(By.XPATH, value= self.cart_goods)

# Получаем кнопку подтверждения удаления товара
def get_delete_btn(self):
    return WebDriverWait(self.driver, 30).until(EC.element_to_be_clickable(
    (By.XPATH, self.delete_btn)))

 def clear_cart(self):
    cart_goods_list = self.get_cart_goods()
    for cart_good in cart_goods_list:
       cart_good.click()
       self.get_delete_btn().click()
       time.sleep(1)

Ответы (1 шт):

Автор решения: BlackTemplar

Попробуйте функцию clear_cart изменить, так ожидание будет реализовано через WebDriverWait

from selenium.webdriver.common.by import By

def clear_cart(self):
    cart_goods_list = self.get_cart_goods()
    for cart_good in cart_goods_list:
       cart_good.click()
       self.get_delete_btn().click()
       WebDriverWait(self.driver, 30).until(EC.invisibility_of_element((By.CSS_SELECTOR, "selector")))
→ Ссылка