我想用Python中的Splinter直接输入电子邮件和密码。问题是它显示了这样的消息:
AttributeError: 'ElementList' object has no attribute 'fill'
我制作的代码如下:
browser.find_by_id('email').first.find_by_tag('input').fill('test@gmail.com')
browser.find_by_id('password').first.find_by_tag('input').fill('mypassword')
"login_email'是文本框的名称,属于电子邮件类型。密码也是如此。?有什么帮助可以解释为什么这不起作用吗?
更新:我尝试了narzero的代码,但现在它说找不到元素:splitte.exceptions.ElementDoesNotExist:找不到id为"email"的元素。
经过一些研究,似乎有人和你有同样的问题。find_by_name返回一个ElementList,因此您必须选择其中一个Element。为此,您可以使用ElementList的第一个方法。
以下是从这个后中提取的一些工作代码
# 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()
感谢narzero的代码。
找到适合您需求的方法