【问题标题】:selenium python send_key error: list object has no attributeselenium python send_key错误:列表对象没有属性
【发布时间】: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'

有人可以给我扔一根骨头吗?

【问题讨论】:

    标签: python selenium key


    【解决方案1】:

    您将获得带有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')
    

    【讨论】:

      【解决方案2】:

      而不是这个:

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

      尝试:

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

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

      【讨论】:

        【解决方案3】:

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

        查找没有s的元素。

        【讨论】:

        • driver.find_element_by_xpath(".//*[@id='UserName']").send_keys('username')
        【解决方案4】:

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

        import time
        time.sleep(2)
        

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

            userID[0].send_keys('username')
            

            为我工作

            【讨论】:

              【解决方案7】:

              请用以下代码替换您的代码,因为您喜欢处理列表的第一个组件,而不是整个列表。

              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')
              

              【讨论】:

                【解决方案8】:

                当我们选择多个元素时,我们输入elements (s),它会返回一个list。没有“send_keys”的单个元素没有s。有“send_keys”

                【讨论】:

                猜你喜欢
                • 2012-10-06
                • 1970-01-01
                • 2018-09-28
                • 1970-01-01
                • 2021-12-04
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-05-25
                相关资源
                最近更新 更多