首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: ListControl,必须设置序列(python )

TypeError: ListControl,必须设置序列(python )
EN

Stack Overflow用户
提问于 2009-12-02 02:17:06
回答 1查看 3.9K关注 0票数 5

我正在使用Python机械打开一个网站,填写一个表格,并提交该表格。其实很简单。它的工作,直到我遇到单选按钮和“选择”输入框。

代码语言:javascript
复制
br.open(url)
br.select_form(name="postmsg")
br.form['subject'] = "Is this good for the holidays? "
br.form['message'] = "I'm new to technology."
br.form['E'] = '0'
br.submit()

  br.form['E'] = '0'
  File "build/bdist.linux-x86_64/egg/ClientForm.py", line 2897, in __setitem__
  File "build/bdist.linux-x86_64/egg/ClientForm.py", line 2092, in __setattr__
  File "build/bdist.linux-x86_64/egg/ClientForm.py", line 2100, in _set_value
TypeError: ListControl, must set a sequence

我为什么要犯这个错误?为什么我不能设置E就像文本框一样?(E是单选按钮)

编辑:根据的说法,这是表单。

代码语言:javascript
复制
Elements
Index   Id  Name    Type    Value   Label   Size    Maximum Length  State
0   subject subject text            35      
2   message message textarea                    
3   identity    identity    select          1       
13      action_btn  hidden                  
14      _charset_   hidden                  
16      r   hidden  /Stocks_(A_to_Z)/Stocks_G               
9       E   radio   0               

Checked
8       E   radio   1               
15      .crumb  hidden  1n1Yo3MQae3             
7       E   radio   2               
17      bn  hidden  25263               
6       E   radio   3               
5       E   radio   4               
4       E   radio   5               
12  SubmitCancel    SubmitCancel    submit  Cancel              
1   mbpostthreads   threads button  Check Existing Topics First             
11  SubmitPost  SubmitPost  submit  Post Message                
10  SubmitPreview   SubmitPreview   submit  Preview Message             
18  yIdCoreIdUser       hidden  annamae41g  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-02 02:27:56

单选按钮和复选框可以有与其他元素不同的行为。这取决于他们的名字和身份。

如果项目的名称相同,请尝试执行以下操作:

代码语言:javascript
复制
br.find_control(name="E").value = ["0"]

另一种选择是:

代码语言:javascript
复制
form.find_control(name="E", kind="list").value = ["0"]

最后,这可能会奏效:

代码语言:javascript
复制
    br["E"] = ["0"]

(我有一段时间没用机械了,所以我记不起来了)。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1830262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档