javascript - 如果 javascript Onclick() 有 Mechanize ,如何点击按钮

标签 javascript python html forms mechanize

我正在编写脚本以自动登录到本地域站点,并希望填写一些日常基本数据。该网站的第一页是登录页面。这是登录按钮的html代码:

<td class="leftbdr" nowrap><input name="loginButton" type="submit"
    class="formStylebuttonact" value='Login' title='Login' 
    onClick="return checkForNullInLogin(this.form)"></td>

查看 checkForNullInLogin() 的源代码我写了这段代码:
import urllib
    import re
import mechanize
from base64 import b64encode
import cookielib

cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

# Browser options
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)

#local website
url = 'http://go.cabs'
username='user'
password='pass'

br= mechanize.Browser()

b64login = b64encode('%s:%s' % (username, password))
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Firefox')]

br = mechanize.Browser()
br.addheaders.append( 
  ('Authorization', 'Basic %s' % b64login )
)

response = br.open("http://go/cabs");
#print response.code
#print response.geturl()

br.select_form("login")
br.form['j_username'] = 'usr'
                br.form['j_password'] = 'pass'
br.form['domain'] = ['1']
#choosing AP domain

#print br.form['domain'] 

#print br.form['j_username'] 

#print br.form['j_password'] 

#print br.form['j_username'] + "is and" + br.form['j_password']
pag2 = br.submit()
html2=pag2.read()

f = open("mechanize_results2.html", "w")
f.write(html2)
f.close();

#print response.read()

我得到的页面与出现错误的登录页面相同:

please fill the username and password.



有没有办法解决这个问题,或者 Mechanize 无法解决?如果 Mechanize 无法实现,请告诉我任何其他方式(任何其他语言)。

最佳答案

而是使用 Mechanize ,我使用了 selenium在 python 中。这是完美的这项任务。 mechanize 很好,但它不支持 java 脚本,另一方面 selenium 可以作为 Web 浏览器中的插件工作。如果您需要在 Web 自动化中处理 javascript,我会建议使用 selenium 而不是 Mechanize 。

关于javascript - 如果 javascript Onclick() 有 Mechanize ,如何点击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18636276/

相关文章:

javascript - ethers.js: 提供者.getGasPrice()

javascript - Flexbox 不包含整个图像 (CSS)

javascript - 带有警报的 onchange 在 ie 中不起作用

python - "raw string regex"究竟是什么,你如何使用它?

python - django rest框架基于自定义类反序列化对象

html - CSS:Topbar 不跟随页面的滚动

javascript - 仅使用 Javascript 访问 DOM 元素

javascript - 使用 jinja2 模板(列表和字典)将 Python 数据结构转换为 js 数据结构

css - 带有文本段落左右 Angular 形状的框,带有 css

html - 可缩放图像和带 float 的 div