2010-01-28 22 views
1

我使用的是我最后一个问题中推荐的Zope testbrowser。我面临的问题是,我可以使用getControl函数来控制不同的对象,如:密码,用户名等。使用getControl来控制名称变量以外的对象

我想提交页面到达下一页,但提交按钮没有'名称'变量,只是一个'id'变量。 “提交”被写成如下:

<input type="submit" id="lgn_button" class="button" tabindex="3" accesskey="s" /> 

与其它对象写为:

<input type="password" class="button" name="password" id="password" size="24" maxlength="20" accesskey="p" tabindex="2" value=""/></td> 

我没有获得改变这一点。我使用,以获得“密码”对象的控制蟒Zope的代码是:

browser.getControl(name='password') 

提交按钮没有“名”,所以我写了:

browser.getControl(id='lgn_button') 

此打印出'id'无效的错误:

TypeError: getControl() got an unexpected keyword argument 'id' 

有没有什么办法来控制'submit'中的其他值之一。

感谢您的任何帮助。

回答

0

我认为,由于某种原因,你不能为你的标签添加一个'name'属性,但如果它只是一个你不能添加的'名称',你可以明确地设置一个'值=提交”(而不是依赖于默认的,这是提交),然后使用browser.getControl(‘提交’)

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

 
for form in browser.mech_browser.forms(): 
    for control in form.controls: 
     if control.id == 'lgn_button': 
      return control 

线的东西你甚至可能想要扩展Browser.getControl(),并将其返回给zope.testbrowser。 ;)

相关问题