def get_tracking_info_logged_in( self, amazon_url: str, to_email: str) -> List[Tuple[str, Optional[str]]]: email_user = to_email.split("@")[0].lower() profile_base = self.config["profileBase"] driver = None for profile_name in os.listdir(os.path.expanduser(profile_base)): if email_user in profile_name.lower(): dc = DriverCreator() dc.args.no_headless = True driver = dc.new( f"{os.path.expanduser(profile_base)}/{profile_name}") break if driver is None: tqdm.write( f"Couldn't find profile directory for email: {to_email}") return [] try: driver.get(amazon_url) shipment_eles = driver.find_elements_by_css_selector( "div.a-section-expander-container") if len(shipment_eles) == 0: return self.get_trackings_within_shipment( driver, driver.find_element_by_css_selector( "div.a-col-left div.a-color-offset-background span.a-color-base" ).text.strip()) else: trackings = [] for shipment_ele in shipment_eles: delivery_status = shipment_ele.find_element_by_css_selector( "span.a-color-base").text.strip() shipment_ele.click() trackings.extend( self.get_trackings_within_shipment( shipment_ele, delivery_status)) return trackings finally: driver.quit()
def new_driver(profile_base: str, profile_name: str) -> WebDriver: dc = DriverCreator() dc.args.no_headless = True return dc.new(f"{os.path.expanduser(profile_base)}/{profile_name}")