python - 使用getControl控制name变量以外的对象

标签 python testing https mechanize zope

我正在使用上一个问题中推荐的 Zope 测试浏览器。我面临的问题是我可以使用 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>

我无权更改此设置。我用来控制“密码”对象的 python zope 代码是:

browser.getControl(name='password')

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

browser.getControl(id='lgn_button')

这会打印出“id”无效的错误:

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

有什么方法可以控制“提交”中的其他值之一。

感谢您的帮助。

最佳答案

我假设,出于某种原因,您不能将“名称”属性添加到您的标签中,但如果它只是一个您不能添加的“名称”,您可以明确设置一个“值=提交”(而不是依赖默认的提交),然后使用 browser.getControl('Submit')

否则,您可以按照以下方式做一些事情

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

您甚至可能想用它扩展 Browser.getControl() 并将其贡献回 zope.testbrowser。 ;)

关于python - 使用getControl控制name变量以外的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2155403/

相关文章:

ssl - 我可以在与非 SSL/TLS 网站共享的服务器上安全地启用 HTTP/2 吗?

python - 如何更改 .condarc 文件的目录?

python - Django表单错误: expected string or bytes-like object for datetime object?

c# - 我的 Web 应用程序正在重定向到安全,我无法阻止它

mongodb - 环回 4 : Test never end when there is a connection with a MongoDB

ruby-on-rails - 外部测试函数(Rails)

apache - Docker GitLab:将GitLab “external url”和 “ssh port”与GUI分离,然后复制并粘贴链接,Web资源,证书和实际端口

python - 对 "list"列表中的元素求和,每个元素具有不同的索引

python - 如何使用 QFileDialog.getOpenFileName 中的选项?

java - 如何只运行一个测试?