Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 “机械化控制名称”;无”;_Python 2.7_Mechanize - Fatal编程技术网

Python 2.7 “机械化控制名称”;无”;

Python 2.7 “机械化控制名称”;无”;,python-2.7,mechanize,Python 2.7,Mechanize,我正在尝试将窗体上的控件从禁用的只读设置为可用。但问题是控件没有名称。我在以前的帖子中看到有人解决了这个问题。但我一直无法正确实施他们的解决方案。由于我是python新手,我希望有人能解释一下我做错了什么 前任职务: 这是我的密码: import urllib2 from bs4 import BeautifulSoup import cookielib import urllib import requests import mechanize # Log-in to wsj.com cj

我正在尝试将窗体上的控件从禁用的只读设置为可用。但问题是控件没有名称。我在以前的帖子中看到有人解决了这个问题。但我一直无法正确实施他们的解决方案。由于我是python新手,我希望有人能解释一下我做错了什么

前任职务:

这是我的密码:

import urllib2
from bs4 import BeautifulSoup
import cookielib
import urllib
import requests
import mechanize

# Log-in to wsj.com
cj = mechanize.CookieJar()
br = mechanize.Browser()
br.set_cookiejar(cj) 

br.set_handle_robots(False)

# The site we will navigate into, handling it's session
br.open('https://id.wsj.com/access/pages/wsj/us/login_standalone.html?mg=id-wsj')

# Select the first (index zero) form
br.select_form(nr=0)

# Returns None
forms = [f for f in br.forms()]
print forms[0].controls[6].name

# Returns set_value not defined
set_value(value,
      name=None, type=None, kind=None, id=None, nr=None,
      by_label=False,  # by_label is deprecated
      label=None)

forms[0].set_value("LOOK!!!! I SET THE VALUE OF THIS UNNAMED CONTROL!", 
                   nr=6)

control.readonly = False
control.disabled = True

您试图设置的控件值实际上是一个按钮,submit按钮:

print [(control.name, control.type) for control in forms[0].controls]
submit_button = forms[0].controls[6]
print submit_button.set_value('test')
印刷品:

[('landing_page', 'hidden'), 
 ('login_realm', 'hidden'), 
 ('login_template', 'hidden'), 
 ('username', 'text'), 
 ('password', 'password'), 
 ('savelogin', 'checkbox'), 
 (None, 'submit')]
并且,您不能对提交按钮使用
set_value()

print [(control.name, control.type) for control in forms[0].controls]
submit_button = forms[0].controls[6]
print submit_button.set_value('test')
结果分为:

AttributeError: SubmitControl instance has no attribute 'set_value'

希望这能有所帮助。

啊,好吧,这是有道理的。为了更改控件,我会在其位置使用什么?@user3285763好的,您实际上想对表单控件做什么?我正在尝试设置它们,以便可以登录-in@user3285763至少你应该设置
username
password
并调用
br.submit()
:看。我先试过了。似乎不起作用。我在其他几个网站上做了实验,它正确地进入了网站。但对《华尔街日报》来说,它不会超过登录页面。没有返回任何错误。我正在检查br.title(),它生成了相同的输出“登录”