【发布时间】:2021-04-10 16:52:20
【问题描述】:
我在服务器端创建了一个 html 表单。
<form action="." method="POST">
<input type="text" name="foo" value="bar">
<textarea name="area">long text</textarea>
<select name="your-choice">
<option value="a" selected>A</option>
<option value="b">B</option>
</select>
</form>
想要的结果:
{
"foo": "bar",
"area": "long text",
"your-choice": "a",
}
我正在寻找的方法(parse_form())可以这样使用:
response = client.get('/foo/')
# response contains <form> ...</form>
data = parse_form(response.content)
data['my-input']='bar'
response = client.post('/foo/', data)
如何在Python中实现parse_form()?
这个和django无关,不过django里面有个feature request,但是几年前就被拒绝了:https://code.djangoproject.com/ticket/11797
更新
我围绕基于 lxml 的答案编写了一个小型 Python 库:html_form_to_dict
【问题讨论】:
-
您需要使用 Selenium 来执行此操作。
-
@markwalker_ 需要 Selenium 来将 html 表单与字典配对?
-
你在谈论测试你的前端。最好用硒来完成。
-
@markwalker_ 到目前为止,我喜欢编写测试。几年前我用过 selenium,而且速度很慢。我想保持我的编辑测试周期快。我开发是因为我喜欢它,而不是因为我必须这样做。
标签: python django html-parsing