Я пытаюсь заставить этот скрипт отправлять ввод с помощью клавиши табуляции после вставки данных в поля ввода. Причина в том, что следующий набор данных будет введен в следующую строку.
Я пытался использовать метод send_key для отправки события кнопки вкладки в браузер, но получаю ошибку. Существует ли правильный способ вызова ввода с клавиатуры на основе этого примера кода?
from selenium.webdriver.common.keys import Keys
def GetQuote():
for i in range(len(orders)):
#description
driver.find_element(By.XPATH, "/html[1]/body[1]/app-root[1]/div[1]/div[1]/app-record[1]/div[1]/div[2]/div[1]/app-record-quoting[1]/div[1]/app-record-product-list-panel[1]/form[1]/div[3]/div[1]/div[1]/div[1]/input[1]").send_keys(orders[i]['description'])
#dropdown menu for Handling Unit
select_element = Select(driver.find_element_by_xpath('/html[1]/body[1]/app-root[1]/div[1]/div[1]/app-record[1]/div[1]/div[2]/div[1]/app-record-quoting[1]/div[1]/app-record-product-list-panel[1]/form[1]/div[3]/div[1]/div[3]/div[1]/select[1]'))
select_element.select_by_value('1')
driver.implicitly_wait(1)
driver.find_element(By.CSS_SELECTOR, "input[formControlName=handlingQty]").send_keys(orders[i]['handling unit'])
driver.find_element(By.CSS_SELECTOR, "input[formControlName=packageQty]").send_keys(orders[i]['pieces'])
driver.find_element(By.CSS_SELECTOR, "input[formControlName=length]").send_keys(orders[i]['length'])
driver.find_element(By.CSS_SELECTOR, "input[formControlName=width]").send_keys(orders[i]['width'])
driver.implicitly_wait(1)
driver.find_element(By.CSS_SELECTOR, "input[formControlName=height]").send_keys(orders[i]['height'])
element=driver.find_element(By.CSS_SELECTOR,"input[formControlName=weight]")
element.send_keys(orders[i]['weight'])
driver.implicitly_wait(1)
if i < len(orders):
element.send_keys(Keys.TAB);
driver.find_element(By.XPATH, "//button[@class='btn-filled clickable']").click() #generate quote button