def getWFSlot(productUrl):
    driver = webdriver.Firefox()
    driver.get(productUrl)
    html = driver.page_source
    soup = bs4.BeautifulSoup(html)
    time.sleep(60)
    no_open_slots = True
    while no_open_slots:
        driver.refresh()
        print('refreshed')
        html = driver.page_source
        soup = bs4.BeautifulSoup(html)
        time.sleep(4)
        slot_patterns = ['Next available', '1-hour delivery windows', '2-hour delivery windows']
        try:
            next_slot_text = soup.find('h4', class_='ufss-slotgroup-heading-text a-text-normal').text
            if any(((next_slot_text in slot_pattern) for slot_pattern in slot_patterns)):
                print('SLOTS OPEN!')
                os.system('say "Slots for delivery opened!"')
                no_open_slots = False
                time.sleep(1400)
        except AttributeError:
            pass
        try:
            slot_opened_text = 'Not available'
            all_dates = soup.findAll('div', {'class': 'ufss-date-select-toggle-text-availability'})
            for each_date in all_dates:
                if (slot_opened_text not in each_date.text):
                    print('SLOTS OPEN!')
                    os.system('say "Slots for delivery opened!"')
                    no_open_slots = False
                    time.sleep(1400)
        except AttributeError:
            pass
        try:
            no_slot_pattern = 'No delivery windows available. New windows are released throughout the day.'
            if (no_slot_pattern == soup.find('h4', class_='a-alert-heading').text):
                print('NO SLOTS!')
        except AttributeError:
            print('SLOTS OPEN!')
            os.system('say "Slots for delivery opened!"')
            no_open_slots = False
def getWFSlot(productUrl):
    driver = webdriver.Firefox()
    driver.get(productUrl)
    html = driver.page_source
    soup = bs4.BeautifulSoup(html)
    time.sleep(60)
    no_open_slots = True
    while no_open_slots:
        driver.refresh()
        print('refreshed')
        html = driver.page_source
        soup = bs4.BeautifulSoup(html)
        time.sleep(4)
        slot_patterns = ['Next available', '1-hour delivery windows', '2-hour delivery windows']
        try:
            next_slot_text = soup.find('h4', class_='ufss-slotgroup-heading-text a-text-normal').text
            if any(((next_slot_text in slot_pattern) for slot_pattern in slot_patterns)):
                print('SLOTS OPEN!')
                os.system('say "Slots for delivery opened!"')
                no_open_slots = False
                time.sleep(1400)
        except AttributeError:
            pass
        try:
            slot_opened_text = 'Not available'
            all_dates = soup.findAll('div', {'class': 'ufss-date-select-toggle-text-availability'})
            for each_date in all_dates:
                if (slot_opened_text not in each_date.text):
                    print('SLOTS OPEN!')
                    os.system('say "Slots for delivery opened!"')
                    no_open_slots = False
                    time.sleep(1400)
        except AttributeError:
            pass
        try:
            no_slot_pattern = 'No delivery windows available. New windows are released throughout the day.'
            if (no_slot_pattern == soup.find('h4', class_='a-alert-heading').text):
                print('NO SLOTS!')
        except AttributeError:
            print('SLOTS OPEN!')
            os.system('say "Slots for delivery opened!"')
            no_open_slots = False