WebDriver: FindElements (C#)

Метод WebDriver-а FindElement предназначен для поиска элемента страницы. Иногда нам нужно получить множество элементов. Эту роль выполняет метод FindElements. Ниже пример использования. Оборачиваем в try{}…catch{} на тот случай если элементы не будут найдены.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        public ReadOnlyCollection<IWebElement> FindElements(By by)
        {
            Trace.WriteLine("Find elements by locator '" + by + "'", "Document");
 
            try
            {
                var elements = _driver.FindElements(by);
                return elements;
            }
 
            catch (WebDriverException)
            {
                Trace.WriteLine("There are no elements found by locator '" + by + "'", "Document");
                return null;
            }
        }
        public ReadOnlyCollection<IWebElement> FindElements(By by)
        {
            Trace.WriteLine("Find elements by locator '" + by + "'", "Document");

            try
            {
                var elements = _driver.FindElements(by);
                return elements;
            }

            catch (WebDriverException)
            {
                Trace.WriteLine("There are no elements found by locator '" + by + "'", "Document");
                return null;
            }
        }

Узнать количество элементов по заданному локатору можно получить используя ElementsCount.

1
2
3
4
5
6
7
        public int ElementsCount(By by)
        {
            Trace.WriteLine("Gets the number of elements by locator '" + by + "'", "Document");
            var count = _driver.FindElements(by).Count;
            Trace.WriteLine("Total elements found: " + count, "Document");
            return count;
        }
        public int ElementsCount(By by)
        {
            Trace.WriteLine("Gets the number of elements by locator '" + by + "'", "Document");
            var count = _driver.FindElements(by).Count;
            Trace.WriteLine("Total elements found: " + count, "Document");
            return count;
        }