Мне нужно получить URL-адрес из элемента «имя» в Selenium C#

#c# #selenium-webdriver

Вопрос:

Я пытался

  private string GetId(int index)
        {
            var xPath = "xpath";
            var name = driver.FindElements(By.XPath(xPath)).GetAttribute("href");

            return name[0].Text;
        }
 

Ошибка

… не содержит определения для «getAttribute» и не может быть найден доступный метод расширения «getAttribute», принимающий первый аргумент типа «ReadOnlyCollection» (у вас отсутствует директива using или ссылка на сборку?…

Комментарии:

1. FindElements возврат-это a ReadOnlyCollection<WebElement> , и вы пытаетесь вызвать GetAttribute эту коллекцию, следовательно, причина ошибки, которую вы получаете. Вам нужны все href атрибуты? Не могли бы вы обновить свой пост, чтобы включить более подробную информацию, примеры и ожидаемые результаты?

Ответ №1:

«водитель.findElements()» возвращает массив найденных элементов, поэтому, если вы хотите прочитать атрибут «href» первого найденного элемента, вам следует использовать этот код:

 var name = driver.FindElements(By.XPath(xPath));

return name[0].GetAttribute("href");