WebDriver: Работа с чекбоксами (C#)

Примеры базовых методов для работы с чекбоксами.

Самое главное, что нужно знать при работе с чекбоксами — для активации/деактивации чекбокса предназначен метод WebDriver-а Click().

1
2
3
4
5
6
        public void Select()
        {
            Trace.WriteLine("Select the toggle-button: '" + By + "'", "Element");
            WaitForElement();
            WebElement.Click();
        }
        public void Select()
        {
            Trace.WriteLine("Select the toggle-button: '" + By + "'", "Element");
            WaitForElement();
            WebElement.Click();
        }

Все остальные методы носят вспомогательный характер.

Selected возвращает состояние элемента (активное/неактивное). Пример метода IsSelected:

1
2
3
4
5
6
7
8
9
        public bool IsSelected
        {
            get
            {
                Trace.WriteLine("Gets whether the toggle-button: '" + By + "' is checked", "Element");
                WaitForElement();
                return WebElement.Selected;
            }
        }
        public bool IsSelected
        {
            get
            {
                Trace.WriteLine("Gets whether the toggle-button: '" + By + "' is checked", "Element");
                WaitForElement();
                return WebElement.Selected;
            }
        }

Метод Activate() предназначен для перевода чекбокса в активное состояние. Сперва выполняется проверка состояния чекбокса, если чекбокса не активен, то вызываем метод Select().

1
2
3
4
5
6
7
8
9
10
11
12
13
14
        public void Activate()
        {
            Trace.WriteLine("Activate the toggle-button: '" + By + "'", "Element");
            WaitForElement();
            if (IsSelected)
            {
                Trace.WriteLine("The toggle-button: '" + By + "' is checked. No action performed", "Element");
            }
            else
            {
                Select();
                AssertIsSelected();
            }
        }
        public void Activate()
        {
            Trace.WriteLine("Activate the toggle-button: '" + By + "'", "Element");
            WaitForElement();
            if (IsSelected)
            {
                Trace.WriteLine("The toggle-button: '" + By + "' is checked. No action performed", "Element");
            }
            else
            {
                Select();
                AssertIsSelected();
            }
        }

Деактивируем элемент:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        
        public void Deactivate()
        {
            Trace.WriteLine("Deactivate the toggle-button: '" + By + "'", "Element");
            WaitForElement();
            if (!IsSelected)
            {
                Trace.WriteLine("Toggle-button: '" + By + "' is deactivated", "Element");
                Select();
                AssertIsNotSelected();
            }
            else
            {
                Trace.WriteLine("WebElement: '" + By + "' is deactivated. No action performed", "Element");
            }
        }
        
        public void Deactivate()
        {
            Trace.WriteLine("Deactivate the toggle-button: '" + By + "'", "Element");
            WaitForElement();
            if (!IsSelected)
            {
                Trace.WriteLine("Toggle-button: '" + By + "' is deactivated", "Element");
                Select();
                AssertIsNotSelected();
            }
            else
            {
                Trace.WriteLine("WebElement: '" + By + "' is deactivated. No action performed", "Element");
            }
        }

Проверяем, что элемент находится в активном состоянии:

1
2
3
4
5
6
        public void AssertIsSelected()
        {
            Trace.WriteLine("Assert is the toggle-button: '" + By + "' is checked:", "Element");
            WaitForElement();
            Assert.IsTrue(IsSelected, "Error! The toggle-button: '" + By + "' is not checked!");
        }
        public void AssertIsSelected()
        {
            Trace.WriteLine("Assert is the toggle-button: '" + By + "' is checked:", "Element");
            WaitForElement();
            Assert.IsTrue(IsSelected, "Error! The toggle-button: '" + By + "' is not checked!");
        }

Проверяем, что элемент находится в неактивном состоянии:

1
2
3
4
5
6
        public void AssertIsNotSelected()
        {
            Trace.WriteLine("Assert is the toggle-button: '" + By + "' is not checked:", "Element");
            WaitForElement();
            Assert.IsFalse(IsSelected, "Error! The toggle-button: '" + By + "' is checked!");
        }
        public void AssertIsNotSelected()
        {
            Trace.WriteLine("Assert is the toggle-button: '" + By + "' is not checked:", "Element");
            WaitForElement();
            Assert.IsFalse(IsSelected, "Error! The toggle-button: '" + By + "' is checked!");
        }