Как отправить вкладку клавиши табуляции в веб-браузер с селеном и python - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь заставить этот скрипт отправлять ввод с помощью клавиши табуляции после вставки данных в поля ввода. Причина в том, что следующий набор данных будет введен в следующую строку.

Example1

Я пытался использовать метод 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

1 Ответ

0 голосов
/ 28 марта 2020

Попробуйте отправить клавишу табуляции на элемент

element=driver.find_element(By.CSS_SELECTOR,"input[formControlName=weight]")
element.send_keys(orders[i]['weight'])
    if i < len(orders):
        element.send_keys(Keys.TAB); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...