def detect_no_deliveries(self): try: get_browser(merchant=MERCHANT_NAME).find_element_by_css_selector( 'img[alt="All delivery windows are full"]') return True except: return False
def detect_delivery_times(self): header = find_by_text( get_browser(merchant=MERCHANT_NAME), "Available Scheduled Times", )[0] section = get_parent(get_parent(header)) return pd.DataFrame(self.parse_delivery_times(section.text))
def run(self): buttons = find_by_text( get_browser(merchant=MERCHANT_NAME), "Got it, Thanks", ) if len(buttons) > 0: buttons[0].click() sleep(2)
def detect_load_more_times_button(self): while True: try: button = get_browser( merchant=MERCHANT_NAME).find_element_by_xpath( '//button[text()="More times"]') button.click() sleep(5) except NoSuchElementException: return
def exists(self): browser = get_browser(merchant=self.merchant_name) return ((len(find_by_text( browser, "Info", )) > 0) & (len(find_by_text( browser, "Delivery times", )) > 0) & (len(find_by_text( browser, "Pickup times", )) > 0))
def run(self): browser = get_browser(merchant=MERCHANT_NAME) email_form = browser.find_element_by_id( "nextgen-authenticate.all.log_in_email") # TODO: get email from task param email_form.send_keys(os.environ["EMAIL"]) sleep(5) password_form = browser.find_element_by_id( "nextgen-authenticate.all.log_in_password") # TODO: get password from task param password_form.send_keys(os.environ["PASSWORD"]) sleep(5) buttons = browser.find_elements_by_css_selector("button") login_button = buttons[2] login_button.click() sleep(14) # TODO: random delays
def exists(self): browser = get_browser(merchant=self.merchant_name) return (browser.current_url == "https://www.instacart.com/store/wegmans/storefront")
def exists(self): browser = get_browser(merchant=self.merchant_name) # The trial prompt is not displayed return len(find_by_text(browser, "Got it, Thanks")) == 0
def exists(self): browser = get_browser(merchant=self.merchant_name) # A log out button exists return len(find_by_text(browser, "Log Out")) > 0
def exists(self): browser = get_browser(merchant=self.merchant_name) return (len(find_by_text( browser, "Welcome back", )) > 0 and len(find_by_text(browser, "Log in")) > 0)
def exists(self): browser = get_browser(merchant=self.merchant_name) return (len(find_by_text( browser, "Already have an account?", )) > 0 and len(find_by_text(browser, "Log in")) > 0)
def exists(self): browser = get_browser(merchant=self.merchant_name) return browser.current_url == "https://www.instacart.com/"
def run(self): find_by_text( get_browser(merchant=MERCHANT_NAME), "Delivery times", )[0].click() sleep(8)
def run(self): get_browser(merchant=MERCHANT_NAME).get( "https://www.instacart.com/store/wegmans/storefront") sleep(14)
def run(self): buttons = get_browser( merchant=MERCHANT_NAME).find_elements_by_css_selector("button") login_button = buttons[0] login_button.click() sleep(5)
def run(self): get_browser(merchant=MERCHANT_NAME).get("https://instacart.com") sleep(5)
def exists(self): browser = get_browser(merchant=self.merchant_name) return len(find_by_text( browser, "Available Scheduled Times", )) > 0
def run(self): cart_button = get_browser( merchant=MERCHANT_NAME).find_element_by_css_selector( 'a[href="/wegmans/info?tab=info"]') cart_button.click() sleep(7)