Python:Selenium 在表单的文本框中写入

Posted

技术标签:

【中文标题】Python:Selenium 在表单的文本框中写入【英文标题】:Python: Selenium write in the text box of a form 【发布时间】:2016-01-08 19:29:28 【问题描述】:

我正在尝试在 here 的文本框中输入内容。右侧的方框显示“在此处粘贴您的文字”。

我想我的问题是如何找到我应该在 selenium 驱动程序中发送文本的框的项目,例如通过 id?

我尝试了类似的方法:

item = driver.find_element_by_css_selector("form#text_processor input[name=process_this]")
item.send_key("Test!")

但是当我这样做时,我会收到以下错误消息:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: "method":"css selector","selector":"form#text_processor input[name=process_this]"

感谢您对此提供的任何帮助。

【问题讨论】:

【参考方案1】:

文本区域在 iframe 内 - 切换到它,找到元素并将密钥发送给它:

driver.switch_to.frame("textarea_iframe")
driver.find_element_by_id("textarea_body").send_keys("test")

注意要删除文本区已有的文本,只需预先全选即可:

text_area = driver.find_element_by_id("textarea_body")
text_area.send_keys(Keys.CONTROL, "a")  # or Keys.COMMAND on Mac
text_area.send_keys("test")

此外,如果您需要返回主要内容,请使用:

driver.switch_to.default_content()

【讨论】:

感谢 alecxe,它运行良好。我只需要在我的代码中导入Keys。我非常感谢您对 Python Master 的所有帮助 :-)

以上是关于Python:Selenium 在表单的文本框中写入的主要内容,如果未能解决你的问题,请参考以下文章

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

Django中将一个文本框中的数据通过点击按钮保存到数据库

如何从用于使用 Selenium 填写表单的 chrome 自动填充框中选择值

python+selenium的WebElement对象操作

无法使用 Selenium WebDriver 在文本框中输入值

如何根据特定参数在 selenium webdriver 的文本框中插入值