本文介绍了TypeError:使用Selenium Python通过send_key发送文本时,FirefoxWebElement'类型的对象没有len()错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

代码试验:

lists = driver.find_elements_by_xpath("//*[@class= 'gradeA']/td[1]")
for list_item in lists:
    print(list_item.text)
    driver.find_element_by_xpath("//input[@id='event_name']").send_keys(list_item)

以下是错误:

Traceback (most recent call last):
      File "C:/Users/Eventbuizz-t460-ki/PycharmProjects/pythonProject/pythonSelenium/super admin.py", line 31, in <module>
        y.send_keys(list_item)
      File "C:UsersEventbuizz-t460-kiAppDataLocalProgramsPythonPython36libsite-packagesseleniumwebdriver
emotewebelement.py", line 348, in send_keys
        {'text': "".join(keys_to_typing(value)),
      File "C:UsersEventbuizz-t460-kiAppDataLocalProgramsPythonPython36libsite-packagesseleniumwebdrivercommonutils.py", line 150, in keys_to_typing
        for i in range(len(val)):
    TypeError: object of type 'FirefoxWebElement' has no len()

    Process finished with exit code 1

推荐答案

您正在使用GeckoDriverfirefoxfind_elements_by_xpath()返回FirefoxWebElement的列表。

您可以循环访问列表:

for list_item in lists:

并打印循环内的文本

print(list_item.text)

但您不能在任何元素内通过send_keys()发送任何单独的FirefoxWebElement

因此您可以看到:

TypeError: object of type 'FirefoxWebElement' has no len()

解决方案

您需要发送元素文本,而不是通过send_keys()发送FirefoxWebElement

driver.find_element_by_xpath("//input[@id='event_name']").send_keys(list_item.text)

这篇关于TypeError:使用Selenium Python通过send_key发送文本时,FirefoxWebElement&#39;类型的对象没有len()错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-18 18:52