Python Selenium调用sendkey报错:'list'对象无此属性,如何填充邮箱?
解决Selenium中AttributeError: 'list' object has no attribute 'sendkey'的问题
错误根源
find_elements()方法返回的是匹配到的所有元素的列表,而列表对象没有sendkey(正确方法名是send_keys)属性。你需要操作单个元素而非列表。
修正方案
方案1:使用单数形式的find_element()(推荐)
因为页面中id="email"的元素通常是唯一的,直接用find_element()获取单个元素,再调用正确的send_keys方法:
mail = 'xxxxxx@gmail.com' username = browser.find_element(By.XPATH, '//*[@id="email"]') username.send_keys(mail)
方案2:从find_elements()返回的列表中取单个元素
如果页面存在多个匹配元素(不常见,因为id应唯一),可通过索引取第一个元素,同时先判断列表非空避免报错:
mail = 'xxxxxx@gmail.com' username_list = browser.find_elements(By.XPATH, '//*[@id="email"]') if username_list: username_list[0].send_keys(mail)
额外注意
- 方法名是
send_keys,不是sendkey,注意末尾的s。
内容的提问来源于stack exchange,提问作者kuuk
相关产品推荐
相关产品推荐

