【问题标题】:Finding multiple radio buttons of the same name in Django webtest在 Django webtest 中查找多个同名单选按钮
【发布时间】:2016-05-30 10:37:00
【问题描述】:

我正在使用 Django webtest 编写一些网络测试,我试图在一对单选按钮中设置一个单选按钮以进行检查。当然,它们都具有相同的name 属性值。

使用pdb,并假设我有一个类型为webtest.forms.Formform 变量,如果我输入form.html,这就是我看到的内容,即beautifulsoup 提供的Webtest(只是其中的一部分,但相关部分)。

<input name="is_external" type="radio" value="False"/>
<input name="is_external" type="radio" value="True"/>

通常要选择与其他输入元素共享名称的特定输入元素,我会执行form.get('is_external', index=1) 之类的操作,在此示例中将选择值为Trueinput

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

*** IndexError: list index out of range.

form.get('is_external') 本身只会给我第一个。我检查了文档,很遗憾他们是lacking when it comes to radio buttons

我错过了什么吗?我以前用type="checkbox" 元素使用过这种方法,我没有遇到任何问题。

【问题讨论】:

    标签: django forms beautifulsoup webtest


    【解决方案1】:

    一位同事给了我一些信息,让我找到了答案。

    事实证明,根据 Webtest,Radio 按钮在Form API 中被视为单个项目。所以为了选择另一个,你需要使用:

    form['is_external'].select('True')
    

    这样,我的示例中的第二个输入是checked="checked"。因此无法在 Webtest Form 类中选择特定的单选按钮。

    【讨论】:

    • 这通常是具有相同名称的单选按钮的情况 - 特别是因为用户一次只能选择一个单选按钮。最好将它们视为显示选择的不同方式。
    • 谢谢约翰!我现在可以看到它,它确实有意义,但我想我认为它具有与复选框类似的 API,而 webtest 只会取消选择任何具有相同名称的单选按钮。为输入干杯:)
    猜你喜欢
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 2018-07-20
    • 1970-01-01
    • 2020-07-06
    • 2015-08-27
    • 1970-01-01
    相关资源
    最近更新 更多