Я заполняю веб-форму, в которой есть поля ввода, раскрывающиеся меню, поля автозаполнения и кнопки действий.
Я извлекаю данные из таблицы Excel, используя openpyxl. Изначально заполнение этих полей занимало 3-4 секунды. После добавления read_only=True
к моей функции readData она немного улучшилась, но не так, как ожидалось.
Есть ли у кого-нибудь какие-либо предложения о том, как я смогу сократить время, необходимое для заполнения каждого поля? Любая помощь очень ценится. Я оставляю как функцию readData, так и функцию populate_form, которую я использую для заполнения текстового поля в качестве примера.
Cheers.
Метод чтения каждой ячейки:
workbook = openpyxl.load_workbook(file, read_only=True)
def readData(file, sheetName, row_num, column_num):
sheet = workbook.get_sheet_by_name(sheetName)
return sheet.cell(row=row_num, column=column_num).value
Способ заполнения поля ввода:
def fill_out_form(driver, path, input_sel, row_num, column_num):
try:
wait_for_element(driver, "//input[@id='" + input_sel + "']", 5)
xls = readData(path, "Callcenter", row_num, column_num)
input_el = driver.find_element_by_xpath("//input[@id='" + input_sel + "']")
input_el.click()
if column_num == 9 or column_num == 40 or column_num == 67 or column_num == 121:
xls = datetime.strftime(xls,'%d/%m/%Y')
input_el.send_keys(xls)
input_el.send_keys(Keys.TAB)
loading_el = WebDriverWait(driver, 4).until(EC.presence_of_element_located((By.XPATH, "//*[@class='sk-attr js-sk-attr sk-attr--labeled sk-attr--mandatory sk-attr--infonnized sk-attr--error sk-textbox clearfix']")))
WebDriverWait(driver, 4).until(wait_not_spinning(loading_el))
except TimeoutException:
print("Loading took too much time!-Try again")