Example #1
0
    def get_col_text(self, by, loc, row, col):
        '''传入table定位,by,loc 获取table中row行,col列的文本 '''
        table_ele = self.find_element(by, loc)
        try:
            rows = table_ele.find_elements(By.TAG_NAME("tr"))
            cols = rows(row).find_elements(By.TAG_NAME("td"))
            return cols(col).text
        except:
            return None

        self.log.info("【获取元素文本】: 定位方式:{} , 定位表达式:{}".format(by, loc))
        return self.find_element(by, loc).text
Example #2
0
 def getValue(self,
              attribute_type=None,
              idx_or_match=None,
              element_name=None):
     element_name = self._get_current_element_name_when_none(element_name)
     element = self._get_current_element_object_or_search(
         idx_or_match, element_name)
     return_value = ""
     if self.isVisible(idx_or_match, element_name):
         if attribute_type is None:
             element_type = self._getElementTagName(element)
             if "input" in element_type:
                 return_value = element.get_attributes_list(
                     self.AttributeType.VALUE)
             elif "text" in element_type:
                 return_value = element.text
             elif "checkbox" in element_type:
                 checkbox_class = element.get_attributes_list(
                     self.AttributeType.CHECKED)
                 if "true" in checkbox_class:
                     return_value = "checked"
                 else:
                     return_value = "unchecked"
             elif "select" in element_type:
                 for index in range(self.getElementSize(element_name)):
                     select_item = element.find_elements(
                         By.TAG_NAME("option")).get(index)
                     if select_item.is_selected():
                         return_value = select_item.text
             elif return_value is None or return_value == "":
                 return_value = element.text
         else:
             return_value = element.get_attributes_list(attribute_type)
     return return_value
class FulfillmentPage:

    # ELECTRONIC_DELIVERY_TAB
    PAGE_TITLE = By.TAG_NAME("Electronic delivery")
    ELECTRONIC_DELIVERY_TAB = By.ID, '__tab_Electronic_delivery'

    # Tab elements
    LIST_NAME = By.ID, 'listname'
    LIST_TYPE = By.ID, 'listtype'

    # DOWNLOAD_INSURANCE_TAB
    DOWNLOAD_INSURANCE_TAB = By.ID, '__tab_Download_insurance'

    # Tab elements

    # BACKUP_MEDIA_TAB
    BACKUP_MEDIA_TAB = By.ID, '__tab_Backup_media'

    # Tab elements

    # SHIPPING_FEES_TAB
    SHIPPING_FEES_TAB = By.ID, '__tab_Shipping_fees'
    SHIPPING_CLASSES = By.ID, 'Shipping classes'
    DELIVERY_ZONES = By.ID, 'Delivery zones »'

    SHIPPING_FEE_NAME = By.ID, 'name0'
    COST_TYPE = By.NAME, 'pricetype0'
    PRICE_VALUE = By.NAME, 'shipprice0'
    SHIPPING_TYPE = By.NAME, 'priceapply0'

    # SHIPPING_CLASSES_PAGE
    CLASS_NAME = By.ID, 'shipname'
    PRICE = By.ID, 'shipprice'
    CURRENCY = By.ID, 'idcurrency_add'
    TYPE = By.ID, 'pricetype'
    ADD_BUTTON = By.ID, 'AddShipPrice'
    BACK_BUTTON = By.LINK_TEXT, 'Back'

    # DELIVERY ZONES PAGE

    # Tab elements

    # SHIPPING_METHODS_TAB
    SHIPPING_METHODS_TAB = By.ID, '__tab_Shipping_methods'

    # Tab elements
    ADD_SHIPPING_METHOD = By.ID, 'shipping_method_name'
    TRACKING_URL = By.ID, 'tracking_url'
    ADD_SHIPPING_METHOD_BUTTON = By.ID, 'AddShippingMethod'
    ACTIVATE_BUTTON = By.ID, 'activate'
    DEACTIVATE_BUTTON = By.ID, 'deactivate'

    # PRODUCT_FILES_TAB
    PRODUCT_FILES_TAB = By.ID, '__tab_Product_files'

    # Tab elements
    ADD_NEW_PRODUCT_FILE = By.ID, 'displayname'
    FILE_VERSION = By.ID, 'fileversion'
    BROWSE_FILE = By.ID, 'uploadfile'
    UPLOAD_FILE = By.ID, 'addfile'
    def test1(self):
        baseUrl = "https://letskodeit.teachable.com/pages/practice"
        driver = webdriver.Firefox()
        driver.maximize_window()
        driver.get(baseUrl)
        driver.implicitly_wait(5)

        element = driver.find_element_by_id("name")

        driver.find_element_by_id("name").send_keys(Keys.SHIFT, 'ahmet')
        driver.find_elements(By.TAG_NAME("a")).size()
Example #5
0
    def ChangeFromToDate(self, fromDate, toDate):
        print("ChageFromToDate zzzz")
        dateElements = self.driver.find_elements(By.CLASS_NAME,
                                                 "react-datepicker-wrapper")
        fromDateBox = dateElements[0].find_element(By.TAG_NAME("input"))
        toDateBox = dateElements[1].find_element(By.TAG_NAME("input"))
        fromDate = str(fromDate)
        toDate = str(toDate)

        fromDateBox.click()
        fromDateBox.clear()
        time.sleep(0.5)
        #fromDateBox.send_keys(str(np.repeat(Keys.Backspace.ToString(),22)))
        fromDateBox.send_keys(str(np.repeat(str(Keys.BACKSPACE), 22)))
        fromDateBox.send_keys(
            time.strptime(fromDate, "%d/%m/%y").replace(".", "/") + "\n\r\n")
        time.sleep(0.5)
        dateElements[0].click()
        time.sleep(0.5)

        toDateBox.click()
        toDateBox.clear()
        time.sleep(0.5)

        #toDateBox.send_keys(string(Concat(Enumerable.Repeat(Keys.Backspace.ToString(), 22))))
        toDateBox.send_keys(str(np.repeat(str(Keys.BACKSPACE), 22)))
        time.sleep(0.5)
        toDateBox.send_keys(
            time.strptime(toDate, "%d/%m/%y").replace(".", "/") + "\n\r\n")
        time.sleep(0.5)
        dateElements[1].click()

        #wait.Timeout = TimeSpan(0, 0, 20)
        #time.sleep(20)
        self.wait.timeout = 20
        #wait.Until(x= > !driver.page_source.Contains("Loading data"))
        self.wait.until(not "Loading data" in self.driver.page_source)
        #wait.Timeout = new TimeSpan(0, 0, 30)
        #time.sleep(30)
        self.wait.timeout = 30
Example #6
0
 def GoToShipFromTermPage(self, imoNo):
     print("GoToShipFromTermPage zzzz")
     self.WaitFindElementByTagAndText("a", "Vessels", 0, 2, 2)
     tableRows = self.driver.find_elements(By.TAG_NAME, "tr")
     tableRows = list(tableRows)
     for i in range(len(tableRows)):
         columnsWithImo = []
         row = tableRows[i].find_elements(By.TAG_NAME, "td")
         for j in range(len(row)):
             if row[j].text == imoNo:
                 a = tableRows[i].find_elements(By.TAG_NAME("td"))
                 columnsWithImo.append(a)
         if len(columnsWithImo) > 0:
             a = tableRows[i].find_elements(By.TAG_NAME, "a")
             for j in range(len(a)):
                 if ("vessel" in a[j].get_attribute("href")):
                     a[j].click()  #第一个点击
                     break
             return PageStatus.SuccessfulOperation.value
     return PageStatus.ShipNonExistent.value
Example #7
0
 def getValue(self,
              attribute_type=None,
              idx_or_match=None,
              element_name=None):
     self.logger_info_save(
         "Get the value of element [{}] on the page [{}].".format(
             self.ActionElement.get_name(),
             self.ActionElement.get_page_name()))
     element = self.ActionElement.get_object()
     return_value = ""
     # if self.isVisible(idx_or_match, element_name):
     if attribute_type is None:
         element_type = self._getElementTagName(element)
         if "input" in element_type:
             return_value = element.get_attributes_list(
                 self.AttributeType.VALUE)
         elif "text" in element_type:
             return_value = element.text
         elif "checkbox" in element_type:
             checkbox_class = element.get_attributes_list(
                 self.AttributeType.CHECKED)
             if "true" in checkbox_class:
                 return_value = "checked"
             else:
                 return_value = "unchecked"
         elif "select" in element_type:
             for index in range(self.getElementSize(element_name)):
                 select_item = element.find_elements(
                     By.TAG_NAME("option")).get(index)
                 if select_item.is_selected():
                     return_value = select_item.text
         elif return_value is None or return_value == "":
             return_value = element.text
     else:
         return_value = element.get_attributes_list(attribute_type)
     return return_value