Python 使用getControl控制名称变量以外的对象

Python 使用getControl控制名称变量以外的对象,python,testing,https,mechanize,zope,Python,Testing,Https,Mechanize,Zope,我正在使用Zope testbrowser,这是我在上一个问题中推荐的。我面临的问题是,我可以使用getControl函数来控制不同的对象,如:密码、用户名等 我试图提交页面以进入下一页,但提交按钮没有“name”变量,只有一个“id”变量“提交”的内容如下: <input type="submit" id="lgn_button" class="button" tabindex="3" accesskey="s" /> “提交”按钮没有“名称”,因此我写了: browser.ge

我正在使用Zope testbrowser,这是我在上一个问题中推荐的。我面临的问题是,我可以使用getControl函数来控制不同的对象,如:密码、用户名等

我试图提交页面以进入下一页,但提交按钮没有“name”变量,只有一个“id”变量“提交”的内容如下:

<input type="submit" id="lgn_button" class="button" tabindex="3" accesskey="s" />
“提交”按钮没有“名称”,因此我写了:

browser.getControl(id='lgn_button')
这将打印出“id”无效的错误:

TypeError: getControl() got an unexpected keyword argument 'id'
是否有任何方法可以控制“提交”中的其他值之一


感谢您的帮助。

我假设,出于某种原因,您不能向标记添加“name”属性,但如果您不能添加的只是一个“name”,则可以显式设置“value=Submit”(而不是依赖默认值,即Submit),然后使用browser.getControl('Submit')

如果做不到这一点,你可以按照

for form in browser.mech_browser.forms(): for control in form.controls: if control.id == 'lgn_button': return control 对于browser.mech_browser.forms()中的表单: 对于form.controls中的控件: 如果control.id==“lgn_按钮”: 返回控制 您甚至可能想用它扩展Browser.getControl(),并将其贡献回zope.testbrowser.。)

TypeError: getControl() got an unexpected keyword argument 'id'
for form in browser.mech_browser.forms(): for control in form.controls: if control.id == 'lgn_button': return control