硒 Python |键入输入

Selenium Python | Type in input

我正在尝试在 Python google chrome 上使用 selenium 输入输入类别。我想发送密钥 1234 来测试配置,但是,我收到错误消息。我相信我从代码中遗漏了一些东西......抱歉,如果这是超级基本的,我仍在学习硒......我已经尝试使用@class并收到错误。

driver.find_element_by_xpath("//input[='']/parent::div").send_keys('1234')

我收到这个错误:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[9]/div/div/div/div[1]/div/div/div/div/div[2]/div[1]/div[1]/div[1]/div/input"}   
(Session info: chrome=88.0.4324.150)

我已经得出结论,html 应该代表值=1234,但是,我仍然在为代码苦苦挣扎。

要向元素发送 字符序列,您可以使用以下任一方法 :

  • 使用CSS_SELECTOR:

    driver.find_element(By.CSS_SELECTOR, "input.[aria-label='Amount'][placeholder='0']").send_keys("1234")
    
  • 使用XPATH:

    driver.find_element(By.XPATH, "//input[@aria-label='Amount' and @placeholder='0']").send_keys("1234")
    

所需的元素是一个动态元素,因此理想情况下将 字符序列 发送到您需要为该元素引入 WebDriverWait 的元素 并且您可以使用以下任一项 :

  • 使用CSS_SELECTOR:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.[aria-label='Amount'][placeholder='0']"))).send_keys("1234")
    
  • 使用XPATH:

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@aria-label='Amount' and @placeholder='0']"))).send_keys("1234")
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

参考资料

您可以在以下位置找到关于 的一些相关讨论: