【问题标题】:Using Python and Mechanize with ASP Forms在 ASP 表单中使用 Python 和机械化
【发布时间】:2010-04-21 00:28:27
【问题描述】:

我正在尝试在 .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 中的任何地方都没有看到。

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

【问题讨论】:

    标签: python asp-classic mechanize


    【解决方案1】:

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

    Mechanize 不能运行 javascript,所以你不能用它来点击那个按钮。

    简单的方法是自己阅读该函数,看看它做了什么 - 如果它只是提交表单,那么也许你可以通过提交表单而不点击任何东西来绕过它。

    【讨论】:

      【解决方案2】:

      您需要先检查元素,mechanize 是否识别表单?

      for form in br.forms():
             print form
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-13
        • 1970-01-01
        • 1970-01-01
        • 2015-09-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多