def type_header(self, header, index=None): if index is None: index = 1 self.open_more_options_menu(index) vals = header.values() keys = header.keys() length = len(vals) count = BasePage.count_elements(self, By.CSS_SELECTOR, self.row_number_prefix.format(index) + self.header_name_field) while count <= length: self.add_header_row(index) count += 1 i = 0 while i < len(vals): name = BasePage.find_element(self, By.CSS_SELECTOR, self.row_header_prefix.format(index, i + 1) + self.header_name_field) value = BasePage.find_element(self, By.CSS_SELECTOR, self.row_header_prefix.format(index, i + 1) + self.header_value_field) BasePage.type(self, keys[i], name) BasePage.type(self, vals[i], value) i += 1
def set_label(self, label, index=None): try: elems = BasePage.find_elements(self, By.CSS_SELECTOR, self.label) except NoSuchElementException: return None if not elems: self.add_url_field() elems = BasePage.find_elements(self, By.CSS_SELECTOR, self.label) if not index: for elem in elems: if elem.get_attribute('value') == '': BasePage.type(self, label, elem) return HttpTest self.add_url_field() elems = BasePage.find_elements(self, By.CSS_SELECTOR, self.label) BasePage.type(self, label, elems[len(elems) - 1]) return HttpTest if index: rows_count = len(elems) if len(elems) < index: while rows_count < index: self.add_url_field() rows_count += 1 elems = BasePage.find_elements(self, By.CSS_SELECTOR, self.label) BasePage.type(self, label, elems[index - 1]) else: BasePage.type(self, label, elems[index - 1]) return HttpTest
def set_url(self, url, index=None, type_test=None): try: elems = BasePage.find_elements(self, By.CSS_SELECTOR, self.url_field) selects = BasePage.find_elements(self, By.CSS_SELECTOR, self.type_select) except NoSuchElementException: return None if not elems: self.add_url_field() elems = BasePage.find_elements(self, By.CSS_SELECTOR, self.url_field) if not index: i = 0 while i < len(elems): if elems[i].get_attribute('value') == '': BasePage.type(self, url, elems[i]) if type_test: selects = BasePage.find_elements(self, By.CSS_SELECTOR, self.type_select) BasePage.select_option(self, type_test, selects[i]) return HttpTest i += 1 self.add_url_field() elems = BasePage.find_elements(self, By.CSS_SELECTOR, self.url_field) selects = BasePage.find_elements(self, By.CSS_SELECTOR, self.type_select) BasePage.type(self, url, elems[len(elems) - 1]) BasePage.select_option(self, type_test, selects[len(selects) - 1]) return HttpTest if index: rows_count = len(elems) if len(elems) < index: while rows_count < index: self.add_url_field() rows_count += 1 elems = BasePage.find_elements(self, By.CSS_SELECTOR, self.url_field) selects = BasePage.find_elements(self, By.CSS_SELECTOR, self.type_select) BasePage.type(self, url, elems[index - 1]) BasePage.select_option(self, type_test, selects[index - 1]) else: BasePage.type(self, url, elems[index - 1]) BasePage.select_option(self, type_test, selects[index - 1]) return HttpTest