Trying to input numbers in text area but failed with error:list object has no attribute

Trying to input numbers in text area but failed with error:list object has no attribute

我是 Python 的新手。尝试使用它填写网络表单。 Web 表单具有以下 HTML 代码

<table class=" l1 ">
<tbody>
<tr>
<td>
<input class="inputtext" type="text" name="q" >
</td>
...

我试过了

pass_code = driver.find_elements_by_name('q')
pass_code.click()
pass_code.send_keys("abcde")

我已经从 selenium 导入了 webdriver。当程序运行到 运行 时,它显示错误:

Traceback (most recent call last):
  File "C:/Users/Retarded /Desktop/fail.py", line 23, in <module>
    pass_code.send_keys("abcde")
AttributeError: 'list' object has no attribute 'send_keys'

我错过了什么?

这意味着该页面有多个名为 q 的元素,因此

pass_code = driver.find_elements_by_name('q')

pass_code 是一个列表。

尝试使用其他方式获取目标输入,或者只是在列表中找到它的索引,然后使用send_keys填写您想要的输入。

如果只有一个名称为 q 的元素,那么您应该只选择 find_element_by_name() 而不是 find_elements_by_name()

第一个返回一个元素,第二个返回一个列表(你需要告诉 selenium 你想继续使用列表中的哪个元素)

所以试试这个代码:

pass_code = driver.find_element_by_name('q')
pass_code.click()
pass_code.send_keys("abcde")

它仍然可以,这将不起作用,例如当有多个元素名为 q.

上面的代码只会获取它找到的第一个并在其上执行命令。如果是这种情况,您最好通过 CSSxpath.

查找元素

您的查找不知何故失败,请使用 xpath 而不是名称

pass_code = driver.find_element_by_xpath("//input[@name='q']") "