【问题标题】:How to send a tab key input into web-browser with selenium and python如何使用 selenium 和 python 将 Tab 键输入发送到 Web 浏览器
【发布时间】:2020-07-07 20:47:21
【问题描述】:

我试图让这个脚本在将数据插入输入字段后发送一个制表键输入。 原因是下一组数据将被输入到下一行。

我尝试使用 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

【问题讨论】:

  • 你得到什么错误?
  • 我更新了上面的问题。

标签: python-3.x selenium selenium-webdriver automation webautomation


【解决方案1】:

尝试将tab键发送给元素

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); 

【讨论】:

  • 我补充说: from selenium.webdriver.common.keys import Keys 到代码,它输入第二组数据。然而,所有数据都输入到第一行。知道如何将数据输入到网站的第二行吗?输出的图片张贴在上面。
猜你喜欢
  • 2018-09-16
  • 1970-01-01
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
相关资源
最近更新 更多