Цитировать документацию Selenium :
Чтобы найти несколько элементов (эти методы вернут список):
- find_elements_by_name
- find_elements_by_xpath
- ...
Вы не можете позвонить .click
on driver.find_elements_by_xpath()
, поскольку driver.find_elements_by_xpath()
возвращает список элементов, а не один элемент.
Предположим, driver.find_elements_by_xpath()
возвращает 10 элементов. Что вы хотите сделать с этими 10 элементами? Нажмите на первый? Нажмите на последний? Нажмите на все из них?
Если вы хотите найти только один элемент, использующий XPath, используйте вместо него driver.find_element_by_xpath()
(примечание, нет s
после element
).
Документация На странице, на которую я ссылался, перечислено 8 способов поиска одного элемента на странице. Все эти методы, кроме find_element_by_id
, имеют соответствующий метод для возврата нескольких элементов, имя которых отличается только заменой element
на elements
. (Не существует метода find_elements_by_id
, потому что id
s должны быть уникальными: никогда не должно быть более одного элемента с одинаковыми id
.)