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