直升机,
我的xpath确实在firePath中验证,但是当我尝试发送_key时,我收到错误。
userID = driver.find_elements_by_xpath(".//*[@id='UserName']")
userID.send_keys('username')
AttributeError:'list'对象没有属性'send_keys'
有人可以折腾我吗?
答案 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')