如何使用带有多个同名复选框的 pylons(粘贴)webtest?

发布于 2024-09-11 15:19:17 字数 377 浏览 10 评论 0原文

假设我有一个这样的表单:

<form id='myform'>
    Favorite colors?
    <input type='checkbox' name='color' value='Green'>Green
    <input type='checkbox' name='color' value='Blue'>Blue
    <input type='checkbox' name='color' value='Red'>Red
    <input type='submit' value='Submit'>
</form>

如何使用webtest的表单库来测试提交多个值?

Suppose I have a form like this:

<form id='myform'>
    Favorite colors?
    <input type='checkbox' name='color' value='Green'>Green
    <input type='checkbox' name='color' value='Blue'>Blue
    <input type='checkbox' name='color' value='Red'>Red
    <input type='submit' value='Submit'>
</form>

How do I use webtest's form library to test submitting multiple values?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紫南 2024-09-18 15:19:17

不确定表单库,但您可以使用 MultiDict (在某些情况下您可能必须使用 UnicodeMultiDict,我不确定)。

from webob.multidict import MultiDict

class TestSomeController(TestController):

    def test_something(self):
        params = MultiDict()
        params.add('some_param', '1')
        params.add('color', 'Green')
        params.add('color', 'Blue')
        response = self.app.post(url('something'), params=params)
        assert 'something' in response

我从未使用 WebTest 提交实际表单,但是,查看 Form 类的源代码,您可以设置要设置的字段的索引以消除歧义。我还没有测试过,但类似的东西可能会起作用:

form = response.form
form.set('color', True, 0)
form.set('color', True, 2)

Not sure about the form library, but you could use a MultiDict (you might have to use UnicodeMultiDict in some cases, I'm not sure).

from webob.multidict import MultiDict

class TestSomeController(TestController):

    def test_something(self):
        params = MultiDict()
        params.add('some_param', '1')
        params.add('color', 'Green')
        params.add('color', 'Blue')
        response = self.app.post(url('something'), params=params)
        assert 'something' in response

I never used WebTest to submit actual forms, but, looking at the source of the Form class, you can set the index of the field you want to set to disambiguate. I've not tested it, but something like that would probably work:

form = response.form
form.set('color', True, 0)
form.set('color', True, 2)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文