selenium python send_key错误:list对象没有属性

时间:2015-04-30 01:13:09

标签: python selenium key

直升机,

我的xpath确实在firePath中验证,但是当我尝试发送_key时,我收到错误。

userID = driver.find_elements_by_xpath(".//*[@id='UserName']")

userID.send_keys('username')
  

AttributeError:'list'对象没有属性'send_keys'

有人可以折腾我吗?

7 个答案:

答案 0 :(得分:10)

您正在使用driver.find_elements_by_xpath(".//*[@id='UserName']")获取列表 webElements,当然这不是单个元素,也没有send_keys()方法。请改用find_element_by_xpath。请参阅this api doc。

userID = driver.find_element_by_xpath(".//*[@id='UserName']")

userID.send_keys('username')

答案 1 :(得分:1)

我在用于 Instagram 输入时遇到了同样的问题,尝试让时间模块休眠 2 秒,然后它开始为我工作。问题是在加载网站之前,bot 开始查找该路径并报告错误。

import time
time.sleep(2)

答案 2 :(得分:0)

当尝试对列表而不是元素执行操作时,会发生此错误。当我试图点击按钮提交凭据时,我遇到了类似的错误。我通过模拟键盘上的输入键找到了解决方法。例如使用xpath / css等在页面上找到任何元素并发送回车键    driver.find_element_by_id('test_id').send_keys(Keys.ENTER)

答案 3 :(得分:0)

我遇到了同样的问题 - 所以我刚刚做了:

userID[0].send_keys('username')

为我工作

答案 4 :(得分:0)

而不是:

userID = driver.find_elements_by_xpath(".//*[@id='UserName']")

userID.send_keys('username')

尝试:

userID = driver.find_element_by_xpath(".//*[@id='UserName']")

userID.send_keys('username')

我有同样的问题,这对我有用。

答案 5 :(得分:0)

driver.find_element_by_xpath(".//*[@id='UserName']").send_keys('username')

没有s的find_element。

答案 6 :(得分:0)

请使用以下代码替换您的代码,因为您希望处理列表的第一部分而不是整个列表。

userID = driver.find_elements_by_ID('username')[0]

userID.send_keys('username')

或从find_elements_by_ID中删除“ s”,例如:

userID = driver.find_element_by_ID('username')

userID.send_keys('username')