如何点击 type="button" 通过 python 机械化

how to click type="button" via python mechanize

我有一个 html 按钮:

<button align="center" id="btnApply" width = "100" type="button" value="Apply" style="width:100px" onClick='Submit(1,getElement("btnApply"));'>

我尝试使用此代码点击此按钮

br.submit(label='Apply',id='btnApply')

但是我得到了这个错误:

no control matching kind 'clickable', id 'btnApply', label 'Apply'

由于该按钮附加了 JavaScript 事件,因此 mechanize 无法真正帮助您。它主要是一个 HTML 解析器,对链接和填写表单有一些额外的支持。但它无法解释 JavaScript 并且通常不会 运行 该网站上的任何内容。

如果您正在寻找可以在 JavaScript 支持的网站上完全模拟浏览器行为的东西,您应该研究无头浏览器。这基本上是一个没有“视觉”部分的浏览器。例如,您可以使用 PhantomJS and run your tests using Selenium.

否则,如果您不打算进行测试,而只是想让那个请求通过,您应该仔细调查该网站并找出 Submit(1,getElement("btnApply")) 代码的作用。然后模拟它并直接将请求发送到服务器——那时你甚至不需要 mechanize 但可能只做普通的 HTTP 请求(例如使用标准库中的 urllib 或 requests)。