WebDriver: Как получить атрибут, текст, расположение и размер элемента (C#)

При написании тестов иногда нужно знать некоторые свойства элементов. Такие как атрибуты, текст, размер и другие. WebDriver содержит методы, которые облегчают решение этой задачи. Некоторые примеры смотрите в этой заметке.

1
2
3
4
5
6
7
8
9
       public IWebElement WebElement { get; set; }
 
       public string GetAttribute(string attributeName)
        {
            Trace.WriteLine("Get the value of the attribute '" + attributeName + "' of the element '" + this + "'", "Element");
            var attribute = WebElement.GetAttribute(attributeName);
            Trace.WriteLine("Attribute is '" + attribute + "'", "Element");
            return attribute;
        }
       public IWebElement WebElement { get; set; }

       public string GetAttribute(string attributeName)
        {
            Trace.WriteLine("Get the value of the attribute '" + attributeName + "' of the element '" + this + "'", "Element");
            var attribute = WebElement.GetAttribute(attributeName);
            Trace.WriteLine("Attribute is '" + attribute + "'", "Element");
            return attribute;
        }

Примеры использования:

1
2
3
4
       WebElement.GetAttribute("value");
       WebElement.GetAttribute("type");
       WebElement.GetAttribute("name");
       WebElement.GetAttribute("class");
       WebElement.GetAttribute("value");
       WebElement.GetAttribute("type");
       WebElement.GetAttribute("name");
       WebElement.GetAttribute("class");

Получаем текст элемента. Данный метод не предназначен для работы с текстовыми полями. Для текстовых полей нужно использовать GetAttribute("value").

1
2
3
4
5
6
7
8
9
        public IWebElement WebElement { get; set; }
        
        public string GetText()
        {
            Trace.WriteLine("Get text of the element '" + By + "'", "Element");
            var text = WebElement.Text;
            Trace.WriteLine("Text of the element is '" + text + "'", "Element");
            return text;
        }
        public IWebElement WebElement { get; set; }
        
        public string GetText()
        {
            Trace.WriteLine("Get text of the element '" + By + "'", "Element");
            var text = WebElement.Text;
            Trace.WriteLine("Text of the element is '" + text + "'", "Element");
            return text;
        }

Пример метода GetLocation для получения данных о расположении элемента:

1
2
3
4
5
6
7
8
9
        public IWebElement WebElement { get; set; }
 
        public Point GetLocation()
        {
            Trace.WriteLine("Get location of the element", "Element");
            var location = WebElement.Location;
            Trace.WriteLine("Location of the element is '" + location + "'", "Element");
            return location;
        }
        public IWebElement WebElement { get; set; }

        public Point GetLocation()
        {
            Trace.WriteLine("Get location of the element", "Element");
            var location = WebElement.Location;
            Trace.WriteLine("Location of the element is '" + location + "'", "Element");
            return location;
        }

Получаем размер элемента:

1
2
3
4
5
6
7
8
9
        public IWebElement WebElement { get; set; }
 
        public Size GetSize()
        {
            Trace.WriteLine("Get size of the element", "Element");
            var size = WebElement.Size;
            Trace.WriteLine("Size of the element is '" + size + "'", "Element");
            return size;
        }
        public IWebElement WebElement { get; set; }

        public Size GetSize()
        {
            Trace.WriteLine("Get size of the element", "Element");
            var size = WebElement.Size;
            Trace.WriteLine("Size of the element is '" + size + "'", "Element");
            return size;
        }