我正在尝试填写两份表格并登录我的银行网站。
我可以获得填写用户名的第一个表单,但我似乎无法获取填写密码的表单。
这是我正在使用的代码:
from splinter import Browser
username2 = '***'
password2 = '***'
browser2 = Browser()
browser2.visit('http://mijn.ing.nl')
browser2.find_by_css('.firstfield').fill(username2)
browser2.find_by_id('#easnhbcc').fill(password2)
这是完整的追溯:
/usr/local/bin/python2 "/Users/narekaramjan/Dropbox/Python/Python 273/Test.py"
Traceback (most recent call last):
File "/Users/narekaramjan/Dropbox/Python/Python 273/Test.py", line 26, in <module>
browser2.find_by_id('#easnhbcc').fill(password2)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/splinter/element_list.py", line 73, in __getattr__
self.__class__.__name__, name))
AttributeError: 'ElementList' object has no attribute 'fill'
Process finished with exit code 1
我也尝试过:
browser2.find_by_name('easnhbcc').fill(password2)
如何将密码表格填写到fil?
答案 0 :(得分:8)
以下是工作代码:
from splinter import Browser
# Define the username and password
username2 = '***'
password2 = '***'
# Choose the browser (default is Firefox)
browser2 = Browser()
# Fill in the url
browser2.visit('https://mijn.ing.nl/internetbankieren/SesamLoginServlet')
# Find the username form and fill it with the defined username
browser2.find_by_id('gebruikersnaam').first.find_by_tag('input').fill(username2)
# Find the password form and fill it with the defined password
browser2.find_by_id('wachtwoord').first.find_by_tag('input').fill(password2)
# Find the submit button and click
browser2.find_by_css('.submit').first.click()
# Print the current url
print browser2.url
# Print the current browser title
print browser2.title
# Print the current html source code
print browser2.html
答案 1 :(得分:1)
错误表示您正在尝试填充元素列表。您只需选择列表中的一个元素。你可能想要这样的东西:
find_by_name('foo').first.fill()
答案 2 :(得分:0)
如果没有深入了解您的代码,并快速查看该网站(ID可能已更改,我可能会添加),我会说您可能添加了额外的&#39;#&## 39;进入你的find_by_id(&#39;#easnhbcc&#39;)电话。 &#39;#&#39;是ID的典型CSS语言,但find_by_id()splinter调用不期望它。 任
find_by_id('easnhbcc')
或
find_by_css('#easnhbcc')
可能会为你做到这一点。