def initialize_pages(self):
     log = logger()
     driver = self.driver
     try:
         time.sleep(2)
         if Element(driver, "Guide", "confirm").is_exist():
             Element(driver, "Guide", "confirm").click()
         if Element(driver,"MenuBar","tabContainer").is_exist() and \
             Element(driver,"MenuBar","tabContainer").get().is_displayed():
             elems = Element(driver, "MenuBar",
                             "tabContainer").get_children_elements(
                                 "MenuBar", "menuTab")
             elems[0].click()
             time.sleep(1)
             Element(driver, "IndexPage", "topdown").click()
             return
         elif Element(driver,"SDP","backToHome").is_exist() and \
                 Element(driver,"SDP","backToHome").get().is_displayed():
             Element(driver, "SDP", "backToHome").click()
             time.sleep(1)
             Element(driver, "IndexPage", "topdown").click()
             return
         elif Element(driver,"SDP","backHome").is_exist() and \
                 Element(driver,"SDP","backHome").get().is_displayed():
             Element(driver, "SDP", "backHome").click()
             time.sleep(1)
             Element(driver, "IndexPage", "topdown").click()
             return
         else:
             # self.click_native_back()
             self.initialize_pages()
         return
     except Exception as e:
         log.log('[-] Error occur @initialize_pages')
         log.log('[-] Error is ' + str(e))
 def select_sdp_item_srp(self):
     log = logger()
     driver = self.driver
     try:
         if (not Element(driver,"SDPCollections","searchLists").is_exist()) or \
                 (not Element(driver,"SDPCollections","searchLists").gets(0).is_displayed()):
             i = 0
             for i in range(0, 8):
                 driver.swipe(470, 800, 470, 550, 400)
                 flag = Element(driver,"SDPCollections","searchLists").is_exist() and \
                        Element(driver,"SDPCollections","searchLists").gets(0).is_displayed()
                 if flag:
                     break
             if i == 7:
                 raise Exception(
                     "Could not find IDs element after swipe 8 times!")
         sdps = Element(driver, "SDPCollections",
                        "searchLists").get_element_list()
         for sdp in sdps:
             sdp.click()
             time.sleep(2)
             if Element(driver,"Guide","close").is_exist() and \
                     Element(driver,"Guide","close").get().is_displayed():
                 Element(driver, "Guide", "close").click()
             if Element(driver, "SDP", "favorite").is_exist():
                 return
             else:
                 Element(driver, "SDP", "back").click()
                 driver.swipe(470, 800, 470, 600, 400)
     except Exception as e:
         log.log('[-] Error occur @select_sdp_item_srp')
         log.log('[-] Error is ' + str(e))
Esempio n. 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
 def get_searched_results(self):
     log = logger()
     driver = self.driver
     try:
         if Element(driver,"SDPCollections","noSearchResults").is_exist() and \
                 Element(driver,"SDPCollections","noSearchResults").get().is_displayed():
             raise Exception("No Such Product Found")
         elif Element(driver,"SDPCollections","searchLists").is_exist() and \
                 Element(driver,"SDPCollections","searchLists").gets(0).is_displayed():
             sdps = Element(driver, "SDPCollections",
                            "searchLists").get_element_list()
         elif Element(driver,"SDPCollections","searchResults").is_exist() and \
                 Element(driver,"SDPCollections","searchResults").gets(0).is_displayed():
             sdps = Element(driver, "SDPCollections",
                            "searchResults").get_element_list()
         elif Element(driver,"SDPCollections","productLists").is_exist() and \
                 Element(driver,"SDPCollections","productLists").gets(0).is_displayed():
             sdps = Element(driver, "SDPCollections",
                            "productLists").get_element_list()
         for sdp in sdps:
             sdp.click()
             time.sleep(2)
             if Element(driver,"Guide","close").is_exist() and \
                     Element(driver,"Guide","close").get().is_displayed():
                 Element(driver, "Guide", "close").click()
             if Element(driver, "SDP", "favorite").is_exist():
                 return
             else:
                 Element(driver, "SDP", "back").click()
     except Exception as e:
         log.log('[-] Error occur @get_search_results')
         log.log('[-] Error is ' + str(e))
Esempio n. 5
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
Esempio n. 6
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
Esempio n. 7
0
 def get_total_ship_fee(self):
     log = logger()
     driver = self.driver
     try:
         time.sleep(1)
         total_price = Element(driver, "SDP", "originalShipFee").get().text
         return total_price
     except Exception as e:
         log.log('[-] Error occur @get_total_ship_fee')
         log.log('[-] Error is ' + str(e))
Esempio n. 8
0
 def hidden_purchase(self):
     log = logger()
     driver = self.driver
     try:
         time.sleep(1)
         Element(driver, "SDP", "hiddenBtn").click()
         time.sleep(1)
     except Exception as e:
         log.log('[-] Error occur @hidden_purchase')
         log.log('[-] Error is ' + str(e))
Esempio n. 9
0
 def back_to_home(self):
     log = logger()
     driver = self.driver
     try:
         time.sleep(1)
         Element(driver, "SDP", "backToHome").click()
         time.sleep(1)
     except Exception as e:
         log.log('[-] Error occur @back_to_home')
         log.log('[-] Error is ' + str(e))
 def select_maple_product_category(self):
     log = logger()
     driver = self.driver
     try:
         time.sleep(1)
         items = Element(driver, "CategoryList", "rootLayouts").get_lists(0)
         items[2].click()
     except Exception as e:
         log.log('[-] Error occur @select_maple_product_category')
         log.log('[-] Error is ' + str(e))
Esempio n. 11
0
 def add_maple_purchase(self):
     log = logger()
     driver = self.driver
     try:
         time.sleep(1)
         Element(driver, "SDP", "maplePurchase").click()
         time.sleep(1)
     except Exception as e:
         log.log('[-] Error occur @add_maple_purchase')
         log.log('[-] Error is ' + str(e))
 def accept_alert(self):
     log = logger()
     try:
         time.sleep(1)
         alert = self.driver.switch_to_alert()
         alert.accept()
     except Exception as e:
         log.log('[-] Error occur @accept_alert')
         log.log('[-] Error is ' + str(e))
         return
Esempio n. 13
0
 def get_maple_quantity(self):
     log = logger()
     driver = self.driver
     try:
         time.sleep(1)
         quantity = Element(driver, "SDP", "mapleQuantity").get().text
         return int(quantity)
     except Exception as e:
         log.log('[-] Error occur @get_maple_quantity')
         log.log('[-] Error is ' + str(e))
class SearchTests(__init__):
    log = logger()
    CAPI = CAPI()
    ini_path = os.path.join(
        os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'View',
        'productId.ini')
    try:
        config = ConfigParser.ConfigParser()
        config.read(ini_path)
    except ConfigParser.MissingSectionHeaderError, e:
        raise str(e)
Esempio n. 15
0
 def select_to_mycoupang_tab(self):
     log = logger()
     driver = self.driver
     try:
         time.sleep(1)
         elems = Element(driver, "MenuBar",
                         "tabContainer").get_children_elements(
                             "MenuBar", "menuTab")
         elems[2].click()
     except Exception as e:
         log.log('[-] Error occur @select_to_mycoupang_tab')
         log.log('[-] Error is ' + str(e))
Esempio n. 16
0
 def check_minus_enabled(self):
     log = logger()
     driver = self.driver
     flag = False
     try:
         time.sleep(1)
         flag = Element(driver, "SDP", "minus").get().is_enabled()
         return flag
     except Exception as e:
         log.log('[-] Error occur @check_minus_enabled')
         log.log('[-] Error is ' + str(e))
         return flag
Esempio n. 17
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))
Esempio n. 18
0
 def get_maple_minus_btn_status(self):
     log = logger()
     driver = self.driver
     flag = False
     try:
         time.sleep(1)
         flag = Element(driver, "SDP", "mapleMinus").get().is_enabled()
         return flag
     except Exception as e:
         log.log('[-] Error occur @get_maple_minus_btn_status')
         log.log('[-] Error is ' + str(e))
         return flag
Esempio n. 19
0
 def get_Ids(self):
     log = logger()
     driver = self.driver
     IDs = {}
     try:
         string = ""
         if (not Element(driver,"SDP","IDsParentView").is_exist()) or \
                 (not Element(driver,"SDP","IDsParentView").get().is_displayed()):
             i = 0
             for i in range(0, 5):
                 driver.swipe(470, 800, 470, 550, 400)
                 flag = Element(driver, "SDP",
                                "IDsParentView").is_exist() and Element(
                                    driver, "SDP",
                                    "IDsParentView").get().is_displayed()
                 if flag:
                     break
             if i == 4:
                 raise Exception(
                     "Could not find IDs element after swipe 5 times!")
             bounds = Element(driver, "SDP", "IDsParentView").gets(0).size
             height = bounds["height"]
             endY = abs(800 - height)
             driver.swipe(470, 800, 470, endY, 400)
             elems = Element(driver, "SDP",
                             "IDsParentView").get_child_elements(
                                 0, "SDP", "IDs")
             for elem in elems:
                 desc = elem.get_attribute("name")
                 desc = desc.encode("utf-8")
                 string = string + desc
             li = re.findall(r'\d+', string)
             IDs.update({'productID': li[-2], 'itemID': li[-1]})
         else:
             bounds = Element(driver, "SDP", "IDsParentView").gets(0).size
             height = bounds["height"]
             endY = abs(800 - height)
             driver.swipe(470, 800, 470, endY, 400)
             elems = Element(driver, "SDP",
                             "IDsParentView").get_child_elements(
                                 0, "SDP", "IDs")
             for elem in elems:
                 desc = elem.get_attribute("name")
                 desc = desc.encode("utf-8")
                 string = string + desc
             li = re.findall(r'\d+', string)
             IDs.update({'productID': li[-2], 'itemID': li[-1]})
         return IDs
     except Exception as e:
         log.log('[-] Error occur @get_Ids')
         log.log('[-] Error is ' + str(e))
         return IDs
 def select_search_product(self, search_product):
     log = logger()
     driver = self.driver
     try:
         time.sleep(1)
         Element(driver, "IndexPage", "search").click()
         time.sleep(1)
         Element(driver, "IndexPage",
                 "searchText").get().send_keys(search_product)
         Element(driver, "IndexPage", "searchBtn").click()
     except Exception as e:
         log.log('[-] Error occur @select_search_product')
         log.log('[-] Error is ' + str(e))
Esempio n. 21
0
 def get_rate(self):
     log = logger()
     driver = self.driver
     try:
         time.sleep(1)
         Element(driver, "SDP", "share").click()
         share_options = Element(driver, "SDP",
                                 "shareOptions").get_element_list()
         Element(driver, "SDP", "cancelShareBtn").click()
         return len(share_options)
     except Exception as e:
         log.log('[-] Error occur @get_share_item')
         log.log('[-] Error is ' + str(e))
Esempio n. 22
0
 def get_elem_location(self, elem):
     log = logger()
     try:
         time.sleep(1)
         location = elem.location
         start_x = location['x']
         start_y = location['y']
         size = elem.size
         width = size['width']
         height = size['height']
         return (start_x, start_y), (width, height)
     except Exception as e:
         log.log('[-] Error occur @get_elem_location')
         log.log('[-] Error is ' + str(e))
Esempio n. 23
0
 def minus_maple_products(self, quantity=0):
     log = logger()
     driver = self.driver
     try:
         if quantity == 0:
             return
         else:
             for i in range(0, quantity):
                 time.sleep(1)
                 Element(driver, "SDP", "mapleMinus").click()
                 time.sleep(1)
     except Exception as e:
         log.log('[-] Error occur @minus_maple_products')
         log.log('[-] Error is ' + str(e))
Esempio n. 24
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))
Esempio n. 25
0
 def add_maple_product(self, quantity=1, limitation=2, total=2):
     log = logger()
     driver = self.driver
     max_buy = 1
     try:
         if quantity == 0:
             return int(max_buy)
         else:
             result = quantity if quantity < limitation else limitation
             max_buy = result if result < total else total
             for i in range(0, max_buy):
                 time.sleep(1)
                 Element(driver, "SDP", "mapleAdd").click()
                 time.sleep(1)
             return max_buy
     except Exception as e:
         log.log('[-] Error occur @add_maple_product')
         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
Esempio n. 27
0
 def get_share_item(self):
     log = logger()
     driver = self.driver
     share_item_list = []
     try:
         time.sleep(1)
         Element(driver, "SDP", "share").click()
         share_options = Element(driver, "SDP",
                                 "shareOptions").get_element_list()
         for share_option in share_options:
             share_item = share_option.text
             share_item = filter(lambda x: not re.match(r'^\s*$', x),
                                 share_item)
             share_item = share_item.replace(" ", "")
             share_item_list.append(share_item.encode("utf-8"))
         Element(driver, "SDP", "cancelShareBtn").click()
         return share_item_list
     except Exception as e:
         log.log('[-] Error occur @get_share_item')
         log.log('[-] Error is ' + str(e))
Esempio n. 28
0
 def add_products(self, quantity=1, limitation=1, total=1):
     log = logger()
     driver = self.driver
     max_buy = 1
     try:
         if quantity == 0:
             return int(max_buy)
         elif limitation > total:
             raise Exception(
                 "Buyable quantity is greater than remain amount!")
         else:
             max_buy = quantity if quantity < limitation else limitation
             for i in range(0, max_buy - 1):
                 time.sleep(1)
                 Element(driver, "SDP", "add").click()
                 time.sleep(1)
             return max_buy
     except Exception as e:
         log.log('[-] Error occur @add_products')
         log.log('[-] Error is ' + str(e))
Esempio n. 29
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
Esempio n. 30
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