예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
 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
예제 #4
0
 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))
예제 #5
0
 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
예제 #7
0
 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
예제 #8
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