如何使用 Python Selenium 在文本框(输入)中定位和插入值?

Posted

技术标签:

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

我有以下 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)

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

【问题讨论】:

【参考方案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")

以上是关于如何使用 Python Selenium 在文本框(输入)中定位和插入值?的主要内容,如果未能解决你的问题,请参考以下文章

python selenium,我无法从文本框中找到元素类或 id

如何在 Java 中使用 Selenium WebDriver (Selenium 2) 输入文本框?

selenium+python自动化99-清空输入框clear()失效问题解决

python-selenium -- 富文本框操作

如何在没有文本框的情况下在 Selenium 中上传文件

如何使用量角器或selenium在网页中的Shadow-root下的文本框中输入文本。