【发布时间】:2015-04-30 01:13:08
【问题描述】:
直升机,
我的 xpath 确实在 firePath 中验证,但是当我尝试发送 _key 时出现错误。
userID = driver.find_elements_by_xpath(".//*[@id='UserName']")
userID.send_keys('username')
AttributeError: 'list' 对象没有属性 'send_keys'
有人可以给我扔一根骨头吗?
【问题讨论】:
直升机,
我的 xpath 确实在 firePath 中验证,但是当我尝试发送 _key 时出现错误。
userID = driver.find_elements_by_xpath(".//*[@id='UserName']")
userID.send_keys('username')
AttributeError: 'list' 对象没有属性 'send_keys'
有人可以给我扔一根骨头吗?
【问题讨论】:
您将获得带有driver.find_elements_by_xpath(".//*[@id='UserName']") 的webElements 列表,这当然不是单个元素,也没有send_keys() 方法。请改用find_element_by_xpath。参考thisapi文档。
userID = driver.find_element_by_xpath(".//*[@id='UserName']")
userID.send_keys('username')
【讨论】:
而不是这个:
userID = driver.find_elements_by_xpath(".//*[@id='UserName']")
userID.send_keys('username')
尝试:
userID = driver.find_element_by_xpath(".//*[@id='UserName']")
userID.send_keys('username')
我遇到了同样的问题,这对我有用。
【讨论】:
driver.find_element_by_xpath(".//*[@id='UserName']").send_keys('username')
查找没有s的元素。
【讨论】:
我在使用 Instagram 输入时遇到了同样的问题,尝试时间模块休眠 2 秒,然后它开始为我工作。问题是在加载网站之前,机器人开始查找该路径并报告错误。
import time
time.sleep(2)
【讨论】:
当尝试对列表而不是元素执行操作时会发生此错误。当我尝试单击按钮提交凭据时,我遇到了类似的错误。我通过模拟键盘上的回车键找到了解决方法。例如使用 xpath/css 等查找页面上的任何元素并发送回车键。driver.find_element_by_id('test_id').send_keys(Keys.ENTER)
【讨论】:
我遇到了同样的问题 - 所以我就这样做了:
userID[0].send_keys('username')
为我工作
【讨论】:
请用以下代码替换您的代码,因为您喜欢处理列表的第一个组件,而不是整个列表。
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')
【讨论】:
当我们选择多个元素时,我们输入elements (s),它会返回一个list。没有“send_keys”的单个元素没有s。有“send_keys”
【讨论】: