AttributeError: у объекта 'list' нет атрибута 'click' - Selenium Webdriver

Я пытаюсь использовать команду click в веб-драйвере Selenium, используя python. Но я получаю ошибку ниже. Кто-нибудь может мне помочь?

Traceback (most recent call last):
File "C:\Users\vikram\workspace\LDC\test.py", line 13, in <module>
driver.find_elements_by_link_text("MISCQA Misc Tests").click()
AttributeError: 'list' object has no attribute 'click'

Вот моя программа

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By 
from selenium.common.exceptions import NoSuchElementException 
from selenium.webdriver.support.ui import WebDriverWait
import config

url = config.config.get('url')

driver = webdriver.Ie()
driver.get(url)

driver.find_elements_by_link_text("MISCQA Misc Tests").click()

driver.close()

Я думаю, что мне чего-то не хватает. Пожалуйста, предложите мне

Ответы на вопрос(6)

выдвинутая «Дэном Ньеро»

Проблема в том, что я используюdriver.find_element[s] вместоdriver.find_element, Так что каждый имеет значение. На самом деле я следую за затмением :(. Очевидно,driver.find_elements_by_link_text возвращает список, так что если я отправлю событие клика, оно не поймет.

Спасибо за помощь и извините за мой плохой вопрос

-Vikram

driver.find_elements_by_link_text("MISCQA Misc Tests")[0].click() или другой индекс ...

Я не знаю Selenium, но, думаю, find_elements_by_link_text находит более чем одну вещь, или, возможно, метод всегда возвращает список, а не один объект. Если вы абсолютно уверены, что только один объект должен быть результатом вашего поиска, чем просто используйте [0], как я упоминал, если вы не можете предположить, что будет только один объект, вам нужно придумать более сильный стратегия

driver.find_elements_by_link_text("MISCQA Misc Tests")

возвращает обратно список, а не объект веб-драйвера selenium (что вы хотите, объект класса, имеющий функцию & quot; click () & quot;).

Most likelyэлементы списка будут объектами.

Распечатайте список после этой части кода и проверьте, являются ли элементы списка теми, которые вам нужны.

driver.find_element_by_link_text("MISCQA Misc Tests")

или если вы хотите весь список, то:

for x in self.driver.find_elements_by_link_text("MISCQA Misc Tests"):
    link = webdriver.ActionChains(self.driver).move_to_element(x).click(x).perform()

Заявлениеdriver.find_elements_by_link_text("MISCQA Misc Tests")  возвращает списокWebElement  некоторые из которых могут быть не кликабельными.

Таким образом, вам нужно будет просмотреть список возвращенных элементов WebElement, а затем щелкнуть те элементы, на которые можно нажимать.

Вы можете проверить, активен ли WebElement или нет, используяisClickable() функция.

Я не разместил код, потому что я не знаю Python. Надеюсь, это поможет вам.

Вы можете попытаться преобразовать элементы в элемент в этом коде 'driver.find_elements_by_link_text ("MISCQA Misc Tests") "apos; Надеюсь, что проблема будет решена

ВАШ ОТВЕТ НА ВОПРОС