【问题标题】:How to locate and insert a value in a text box (input) using Python Selenium?如何使用 Python Selenium 在文本框(输入)中定位和插入值?
【发布时间】:2026-01-30 18:30:01
【问题描述】:

我有以下 HTML 结构,我正在尝试使用 Selenium 输入 NUM 的值:

<div class="MY_HEADING_A">
    <div class="TitleA">My title</div>
    <div class="Foobar"></div>
        <div class="PageFrame" area="W">                
             <span class="PageText">PAGE <input id="a1" type="txt" NUM="" />  of <span id="MAX"></span> </span>
</div>

这是我写的代码:

head = driver.find_element_by_class_name("MY_HEADING_A")
frame_elem = head.find_element_by_class_name("PageText")

# Following is a pseudo code. 
# Basically I need to enter a value of 1, 2, 3 etc in the textbox field (NUM) 
# and then hit RETURN key.
## txt  = frame_elem.find_element_by_name("NUM")
## txt.send_keys(Key.4)

如何获取这个元素并输入一个值‎‎‎‎‎‎‎? ‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎

【问题讨论】:

    标签: python python-2.7 selenium-webdriver form-submit html-input


    【解决方案1】:

    假设您的页面在“http://example.com”下可用

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    driver = webdriver.Firefox()
    driver.get("http://example.com")
    

    按 id 选择元素:

    inputElement = driver.find_element_by_id("a1")
    inputElement.send_keys('1')
    

    现在您可以模拟敲击 ENTER:

    inputElement.send_keys(Keys.ENTER)
    

    或者如果它是您可以提交的表单:

    inputElement.submit() 
    

    【讨论】:

    • ElementNotInteractableException:消息:元素
    • 无法通过键盘访问
    • 您应该在交互之前等待元素出现。 input_element = WebDriverWait(driver, WAIT_TIME).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "#a1"))) input_element.send_keys("1")
    最近更新 更多