首页 > 解决方案 > Python Selenium - 有什么方法可以在这个文本框中发送文本?

问题描述

我想选择一个文本框来输入一些数据,问题是我不知道如何获取它的元素:

这就是我检查它时得到的结果:

<input class=" input" maxlength="255" type="text" aria-describedby="" placeholder="" id="8624:0" data-aura-rendered-by="8628:0" data-interactive-lib-uid="28">

问题是,这基本上是为了填写表格,而 id、rendered by 和 uid 数字会发生变化。有什么我可以尝试的吗?

标签: pythonseleniumxpathcss-selectorswebdriverwait

解决方案


要将字符序列发送到<input>您需要诱导WebDriverWait的元素element_to_be_clickable(),您可以使用以下任一Locator Strategies

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.input[type='text'][data-aura-rendered-by][aria-describedby]"))).send_keys("Smece")
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class=' input' and @type='text'][@data-aura-rendered-by and @aria-describedby]"))).send_keys("Smece")
    
  • 注意:您必须添加以下导入:

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

推荐阅读