2.4.2. CheckBox

Назад Содержание Дальше

Следующим шагом является работа с диалогом Check box, который соответственно демонстрирует работу с объектами класса CheckBox. Итак, приступаем к открытию окна. Процедура уже знакома:

Code

		[ ] wTestApp.Control.CheckBox.Pick()
		[-] if( !dCheckBox.Exists() )
			[ ] LogError("Check box window didn't appear")
			[ ] return

 

Далее нужно обеспечить некоторое начальное состояние нашего CheckBox-а, чтобы потом проделывать с ним манипуляции. В данном случае, нужно убедиться, что в этом поле нет флажка или же сделать так, чтобы этого флажка не было. То есть данный элемент должен быть приведен к некоторому детерминированному состоянию. Для таких целей существует метод SetState(…). В результате его работы CheckBox примет то состояние, которое будет указано в параметре. Далее надо кликнуть на этом элементе (это мы умеем), а затем проверить, что флажок установлен. Для осуществления последней проверки можно использовать 3 способа:

  • метод GetState – возвращает истинное значение, если флажок установлен;
  • bChecked – свойство, аналогичное по действию с предыдущей функцией;
  • bValue – свойство, аналогичное предыдущему, за тем исключением, что данное свойство может находиться как в правой так и левой части выражения, то есть данное свойство объединяет в себе действия методов SetState и GetState.

В данном случае задействуем 2-й способ ( можете считать, что это личное предпочтение ). Итак, код имеет вид:

Code

		[ ] dCheckBox.cbTheCheckBox.SetState(FALSE)
		[ ] dCheckBox.cbTheCheckBox.Click()
		[-] if( !dCheckBox.cbTheCheckBox.bChecked )
			[ ] LogError("""The Check box"" field isn't checked")

 

Теперь нужно кликнуть на поле Enabled 2 раза и убедиться, что после первого нажатия тестовый CheckBox деактивируется, а после второго нажатия наоборот – активируется. Так как класс CheckBox наследуется от AnyWin класса, что для него также действует метод IsEnabled и соответствующее свойство bEnabled. Данный блок реализуется вот таким кодом:

Code

		[ ] dCheckBox.cbEnabled.Click()
		[-] if( dCheckBox.cbTheCheckBox.bEnabled )
			[ ] LogError("""The Check box"" field is still enabled")
		[ ] 
		[ ] dCheckBox.cbEnabled.Click()
		[-] if( !dCheckBox.cbTheCheckBox.bEnabled )
			[ ] LogError("""The Check box"" field is not enabled")

 

Осталось ввести новый текст надписи CheckBox-a. В предыдущем шаге мы рассматривали работу с текстовым полем, так что занести в него текст уже не сложно. Да и на кнопку потом нажать не трудно. Осталось только убедиться, что введенный текст станет надписью для данного CheckBox-a. Вспомним тот факт, что текст надписи на элементе управления определяет тег, который будет присвоен данному элементу. То есть, мы можем сохранить текст надписи в некоторой переменной, а затем после изменения надписи, искать нужный CheckBox через его оконный класс (тег-то мы знаем и положение в иерархии – все, в общем ). Это сводится к коду вида:

Code

		[ ] sValue = "New Label"
		[ ] dCheckBox.edtLabel.sValue = sValue
		[ ] dCheckBox.btnSetLabel.Click() 
		[-] if( !dCheckBox.CheckBox(sValue).Exists() )
			[ ] LogError("Check box with recently entered label ""{sValue}"" wasn't found. ")

 

Но нам не мешало бы опять вспомнить, что класс CheckBox наследуется от AnyWin, у которого в свою очередь есть свойство sCaption – как раз то, что нам нужно проверить. Принимая во внимание данный момент, получаем код:

Code

		[ ] sValue = "New Label"
		[ ] dCheckBox.edtLabel.sValue = sValue
		[ ] dCheckBox.btnSetLabel.Click() 
		[-] if( dCheckBox.cbTheCheckBox.sCaption != sValue )
			[ ] LogError("Check box with recently entered label ""{sValue}"" wasn't found. "+
             "Currently field ""{dCheckBox.cbTheCheckBox.sCaption}"" ")

 

А далее, закрываем диалог, как и в предыдущем шаге. Итого, в конечном итоге получаем шаг вида:

Code

		[ ] wTestApp.Control.CheckBox.Pick()
		[-] if( !dCheckBox.Exists() )
			[ ] LogError("Check box window didn't appear")
			[ ] return
		[ ] 
		[ ] dCheckBox.cbTheCheckBox.SetState(FALSE)
		[ ] dCheckBox.cbTheCheckBox.Click()
		[-] if( !dCheckBox.cbTheCheckBox.bChecked )
			[ ] LogError("""The Check box"" field isn't checked")
		[ ] 
		[ ] dCheckBox.cbEnabled.Click()
		[-] if( dCheckBox.cbTheCheckBox.bEnabled )
			[ ] LogError("""The Check box"" field is still enabled")
		[ ] 
		[ ] dCheckBox.cbEnabled.Click()
		[-] if( !dCheckBox.cbTheCheckBox.bEnabled )
			[ ] LogError("""The Check box"" field is not enabled")
			[ ] dCheckBox.cbEnabled.bValue = TRUE
		[ ] 
		[ ] sValue = "New Label"
		[ ] dCheckBox.edtLabel.sValue = sValue
		[ ] dCheckBox.btnSetLabel.Click() 
		[-] if( dCheckBox.cbTheCheckBox.sCaption != (sValue) )
			[ ] LogError("Check box with recently entered label ""{sValue}"" wasn't found. Currently field ""{dCheckBox.cbTheCheckBox.sCaption}"" available")
		[ ] 
		[ ] dCheckBox.btnExit.Click()
		[-] if( dCheckBox.Exists() )
			[ ] LogError("Check box dialog wasn't closed")

 


Назад Содержание Дальше