def get_maple_delivery_desc(self): log = logger() driver = self.driver price = "" try: time.sleep(1) if Element(driver,"SDP","mapleDeliveryDesc").is_exist() and \ Element(driver,"SDP","mapleDeliveryDesc").get().is_displayed() : price = Element(driver, "SDP", "mapleDeliveryDesc").get().text price = filter(lambda x: not re.match(r'^\s*$', x), price) price = price.replace(" ", "") else: i = 0 for i in range(0, 5): driver.swipe(470, 800, 470, 600, 400) if Element(driver,"SDP","mapleDeliveryDesc").is_exist() and \ Element(driver,"SDP","mapleDeliveryDesc").get().is_displayed() : break if i == 4: raise Exception( "Could not find price element after swipe 5 times!") price = Element(driver, "SDP", "mapleDeliveryDesc").get().text price = filter(lambda x: not re.match(r'^\s*$', x), price) price = price.replace(" ", "") return price.encode("utf-8") except Exception as e: log.log('[-] Error occur @get_maple_delivery_desc') log.log('[-] Error is ' + str(e)) return price
def get_ship_fee(self): log = logger() driver = self.driver shipFee = "" try: time.sleep(1) if Element(driver,"SDP","shipFee").is_exist() and \ Element(driver,"SDP","shipFee").get().is_displayed() : shipFee = Element(driver, "SDP", "shipFee").get().text shipFee = filter(lambda x: not re.match(r'^\s*$', x), shipFee) shipFee = shipFee.replace(" ", "") else: i = 0 for i in range(0, 5): driver.swipe(470, 800, 470, 600, 400) if Element(driver,"SDP","shipFee").is_exist() and \ Element(driver,"SDP","shipFee").get().is_displayed() : break if i == 4: raise Exception( "Could not find shipFee element after swipe 5 times!") shipFee = Element(driver, "SDP", "shipFee").get().text shipFee = filter(lambda x: not re.match(r'^\s*$', x), shipFee) shipFee = shipFee.replace(" ", "") return shipFee.encode("utf-8") except Exception as e: log.log('[-] Error occur @get_ship_fee') log.log('[-] Error is ' + str(e)) return shipFee
def get_product_title(self): log = logger() driver = self.driver title = "" try: time.sleep(1) if Element(driver,"SDP","title").is_exist() and \ Element(driver,"SDP","title").get().is_displayed() : title = Element(driver, "SDP", "title").get().text title = filter(lambda x: not re.match(r'^\s*$', x), title) title = title.replace(" ", "") else: count = 0 for count in range(0, 5): driver.swipe(470, 800, 470, 600, 400) if Element(driver,"SDP","title").is_exist() and \ Element(driver,"SDP","title").get().is_displayed() : break if count == 4: raise Exception( "Could not find title element after swipe 5 times!") title = Element(driver, "SDP", "title").get().text title = filter(lambda x: not re.match(r'^\s*$', x), title) title = title.replace(" ", "") return title.encode("utf-8") except Exception as e: log.log('[-] Error occur @get_product_title') log.log('[-] Error is ' + str(e)) return title
def get_original_unit_price(self): log = logger() driver = self.driver try: time.sleep(1) price = Element(driver, "SDP", "mapleOriginalUnitPrice").get().text price = filter(lambda x: not re.match(r'^\s*$', x), price) price = price.replace(" ", "") return price.encode("utf-8") except Exception as e: log.log('[-] Error occur @get_original_unit_price') log.log('[-] Error is ' + str(e))
def get_original_price(self): log = logger() driver = self.driver try: time.sleep(1) original_price = Element(driver, "SDP", "selectedLayout").get_children_element( "SDP", "originalPrice").text original_price = filter(lambda x: not re.match(r'^\s*$', x), original_price) original_price = original_price.replace(",", "") original_price = original_price.encode("utf-8") original_price = self.__get_num(original_price) return original_price except Exception as e: log.log('[-] Error occur @get_original_price') log.log('[-] Error is ' + str(e))
def get_clp_srp(self): log = logger() driver = self.driver clp_info = "" try: if (not Element(driver,"SDPCollections","CLP").is_exist()) or \ (not Element(driver,"SDPCollections","CLP").gets(0).is_displayed()): i = 0 for i in range(0, 15): driver.swipe(470, 800, 470, 550, 400) flag = Element(driver,"SDPCollections","CLP").is_exist() and \ Element(driver,"SDPCollections","CLP").gets(0).is_displayed() if flag: break if i == 14: raise Exception( "Could not find collection pages after swipe 14 times!" ) clps = Element(driver, "SDPCollections", "CLP").get_element_list() if len(clps) == 1: location = Element(driver, "SDPCollections", "CLP").get().size height = location["height"] end_y = abs(800 - height) driver.swipe(470, 800, 470, end_y, 400) clp_info = Element(driver, "SDPCollections", "CLP").get_children_element( "SDPCollections", "CLPText").text else: location = Element(driver, "SDPCollections", "CLP").gets(0).size height = location["height"] end_y = abs(800 - height) driver.swipe(470, 800, 470, end_y, 400) clp_info = Element(driver, "SDPCollections", "CLP").get_child_element( 0, "SDPCollections", "CLPText").text clp_info = filter(lambda x: not re.match(r'^\s*$', x), clp_info) clp_info = clp_info.replace(" ", "") return clp_info.encode("utf-8") except Exception as e: log.log('[-] Error occur @get_clp_srp') log.log('[-] Error is ' + str(e)) return clp_info
def get_tooltip_content(self, index): log = logger() driver = self.driver content = "No tooltip pop up!" try: time.sleep(1) elems = Element(driver, "SDP", "mapleOption").get_element_list() leng = len(elems) index = index % leng elems[index].click() if Element(driver,"SDP","mapleTooltip").is_exist() and \ Element(driver,"SDP","mapleTooltip").get().is_displayed(): content = Element(driver, "SDP", "tooltipContent").get().text content = filter(lambda x: not re.match(r'^\s*$', x), content) content = content.replace(" ", "") return content.encode("utf-8"), leng except Exception as e: log.log('[-] Error occur @get_tooltip_content') log.log('[-] Error is ' + str(e)) return content, 0
def select_an_option(self, index): log = logger() driver = self.driver option_info = "" try: time.sleep(1) if Element(driver,"SDP","optionSelector").is_exist() and \ Element(driver,"SDP","optionSelector").get().is_displayed() : Element(driver, "SDP", "optionSelector").click() else: i = 0 for i in range(0, 5): driver.swipe(470, 800, 470, 600, 400) if Element(driver,"SDP","optionSelector").is_exist() and \ Element(driver,"SDP","optionSelector").get().is_displayed() : break if i == 4: raise Exception( "Could not find options button element after swipe 5 times!" ) Element(driver, "SDP", "optionSelector").click() options = Element(driver, "SDP", "options").get_element_list() index = index % len(options) option_info = Element(driver, "SDP", "options").get_child_element( index, "SDP", "optionPrice").text options[index].click() option_info = filter(lambda x: not re.match(r'^\s*$', x), option_info) option_info = option_info.replace(" ", "") option_info = option_info.encode("utf-8") if "(" in option_info: option_info = option_info.split("(")[0] option_price = self.__get_num(option_info) return option_price except Exception as e: log.log('[-] Error occur @select_an_option') log.log('[-] Error is ' + str(e)) return option_info