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
如何从用于使用 Selenium 填写表单的 chrome 自动填充框中选择值
python+selenium的WebElement对象操作