我试图在 .asp 页面上提交表单,但 Mechanize 无法识别控件的名称。表单代码为:
<form id="form1" name="frmSearchQuick" method="post">
....
<input type="button" name="btSearchTop" value="SEARCH" class="buttonctl" onClick="uf_Browse('dledir_search_quick.asp');" >
我的代码如下:
br = mechanize.Browser()
br.open(BASE_URL)
br.select_form(name='frmSearchQuick')
resp = br.click(name='btSearchTop')
我也试过最后一行:
resp = br.submit(name='btSearchTop')
我得到的错误是:
raise ControlNotFoundError("no control matching "+description) ControlNotFoundError: no control matching name 'btSearchTop', kind 'clickable'
如果我打印 br 我得到这个:IgnoreControl(btSearchTop=)
但我在 HTML 中的任何地方都看不到它。
关于如何提交此表单有什么建议吗?
最佳答案
按钮不提交表单 - 它调用一些 javascript 函数。
Mechanize 无法运行 javascript,因此您无法使用它来单击该按钮。
最简单的方法是自己阅读该函数,看看它做了什么 - 如果它只是提交表单,那么也许您可以通过提交表单而不单击任何内容来绕过它。
关于python - 将 Python 和 Mechanize 与 ASP 表单结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2679595/