我有一个视图应该是基于GET值为表单字段设置初始值.我想测试一下.我目前正在使用Django的测试客户端,但我愿意看其他工具.
对不起,我没有提到我很清楚assertContains方法,但我希望除了在HTML中搜索input标签和value属性之外还有更好的方法.
我的目标是获取所有输入名称和值的列表.将它们配对并提交表格.名称和值是随机的.
from bs4 import BeautifulSoup # parsing
html = """
<html>
<head id="Head1"><title>Title Page</title></head>
<body>
<form id="formS" action="login.asp?dx=" method="post">
<input type=hidden name=qw1NWJOJi/E8IyqHSHA== value='gDcZHY+nV' >
<input type=hidden name=sfqwWJOJi/E8DFDHSHB== value='kgDcZHY+n' >
<input type=hidden name=Jsfqw1NdddfDDSDKKSL== value='rNg4pUhnV' >
</form>
</body>
</html>
"""
html_proc = BeautifulSoup(html)
Run Code Online (Sandbox Code Playgroud)
这个位工作正常:
print html_proc.find("input", value=True)["value"]
> gDcZHY+nV
Run Code Online (Sandbox Code Playgroud)
但是,以下陈述不起作用或不起作用:
print html_proc.find("input", name=True)["name"]
> TypeError: find() got multiple values for keyword argument 'name'
print html_proc.findAll("input", value=True, attrs={'value'})
> []
print html_proc.findAll('input', value=True)
> <input name="qw1NWJOJi/E8IyqHSHA==" type="hidden" value="gDcZHY+nV">
> <input name="sfqwWJOJi/E8DFDHSHB==" type="hidden" value="kgDcZHY+n"> …Run Code Online (Sandbox Code Playgroud) 我想在html页面中提取某些表单元素的键值对
例如
name="frmLogin" method="POST" onSubmit="javascript:return validateAndSubmit();" action="TG_cim_logon.asp?SID=^YcMunDFDQUoWV32WPUMqPxeSxD4L_slp_rhc_rNvW7Fagp7FgH3l0uJR/3_slp_rhc_dYyJ_slp_rhc_vsPW0kJl&RegType=Lite_Home"
Run Code Online (Sandbox Code Playgroud)
而原来的线是
<form name="frmLogin" method="POST" onSubmit="javascript:return validateAndSubmit();" action="TG_cim_logon.asp?SID=^YcMunDFDQUoWV32WPUMqPxeSxD4L_slp_rhc_rNvW7Fagp7FgH3l0uJR/3_slp_rhc_dYyJ_slp_rhc_vsPW0kJl&RegType=Lite_Home">
Run Code Online (Sandbox Code Playgroud)
是否有任何方法可以安全地获得键和值对.我尝试使用空格拆分然后使用'='字符,但引号内的字符串也可以有'='.
是否有任何不同类型的拆分方法,也可以处理报价?
我想测试我的 Django 表单,但出现此错误
django.core.exceptions.ValidationError: ['ManagementForm data is missing or has been tampered with']
Run Code Online (Sandbox Code Playgroud)
这样做:
self.client.post(self.url, {"title" : 'title', "status" : 2, "user" :1})
Run Code Online (Sandbox Code Playgroud)
而我的模型只需要这些字段......
谢谢 :)
编辑1:这是表格:
class ArticleAdminDisplayable(DisplayableAdmin):
fieldsets = deepcopy(ArticleAdmin.fieldsets)
list_display = ('title', 'department', 'publish_date', 'status', )
exclude = ('related_posts',)
filter_horizontal = ['categories',]
inlines = [ArticleImageInline,
ArticlePersonAutocompleteInlineAdmin,
ArticleRelatedTitleAdmin,
DynamicContentArticleInline,
ArticlePlaylistInline]
list_filter = [ 'status', 'keywords', 'department', ]
class ArticleAdmin(admin.ModelAdmin):
model = Article
Run Code Online (Sandbox Code Playgroud)
关于文章模型有太多的继承,所以你必须相信我唯一需要的字段(模型)是标题、状态和用户。