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
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()
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
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
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