使用Python和Mechanize与ASP表单

tch*_*ore 1 python mechanize asp-classic

我正在尝试在.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');" >
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

br = mechanize.Browser()
br.open(BASE_URL)
br.select_form(name='frmSearchQuick')
resp = br.click(name='btSearchTop')
Run Code Online (Sandbox Code Playgroud)

我也试过最后一行:

resp = br.submit(name='btSearchTop')
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

raise ControlNotFoundError("no control matching "+description) ControlNotFoundError: no control matching name 'btSearchTop', kind 'clickable'
Run Code Online (Sandbox Code Playgroud)

如果我打印br我得到这个:IgnoreControl(btSearchTop =)

但是我没有在HTML中看到任何地方.

有关如何提交此表格的任何建议?

nos*_*klo 5

该按钮不提交表单 - 它调用一些javascript函数.

Mechanize无法运行javascript,因此您无法使用它来单击该按钮.

简单的方法是自己阅读该功能,并查看它的作用 - 如果它只是提交表单,那么也许你可以通过提交表单而不点击任何东西来绕过它.