3.3. Запись, модификация и написание скриптов

Назад: 3.2 Использование стандартов именования Содержание Дальше: 3.4 Использование именования (NameMapping) и псевдонимов (Aliases)

Средства записи скриптов, которыми обладают все современные средства автоматизации, обычно недостаточны для создания качественных скриптов, которые будет удобно модифицировать и поддерживать в дальнейшем.

Обычно средства записи полезны в самом начале, на этапе изучения инструмента, чтобы понять, как именно происходит работа с элементами управления в скриптах. Затем, по мере накопления опыта, вы начнете изменять скрипты таким образом, чтобы они работали стабильнее или были более читабельны. Часть кода будет выноситься в отдельные функции для дальнейшего использования, часть будет перемещаться в циклы, будут добавляться условные операторы и т.п. Зачастую приходится писать довольно сложные функции для дальнейшего использования (например, при работе с базами данных). В конце-концов весь код будет писаться вручную и это будет занимать меньше времени, чем запись и последующая модификация записанного скрипта.

Давайте в качестве примера сделаем такое упражнение. Предположим, нам необходимо пять раз открыть и закрыть окно справки в Блокноте. Вот как такой скрипт будет выглядеть при записи:

function Test1()

{

  var  notepad;

  var  wndNotepad;

  notepad = Sys.Process(“notepad”);

  wndNotepad = notepad.Window(“Notepad”, “*”);

  wndNotepad.MainMenu.Click(“Help|About Notepad”);

  notepad.Window(“#32770″, “About Notepad”).Window(“Button”, “OK”).ClickButton();

  wndNotepad.MainMenu.Click(“Help|About Notepad”);

  notepad.Window(“#32770″, “About Notepad”).Window(“Button”, “OK”).ClickButton();

  wndNotepad.MainMenu.Click(“Help|About Notepad”);

  notepad.Window(“#32770″, “About Notepad”).Window(“Button”, “OK”).ClickButton();

  wndNotepad.MainMenu.Click(“Help|About Notepad”);

  notepad.Window(“#32770″, “About Notepad”).Window(“Button”, “OK”).ClickButton();

  wndNotepad.MainMenu.Click(“Help|About Notepad”);

  notepad.Window(“#32770″, “About Notepad”).Window(“Button”, “OK”).ClickButton();

}

 А что делать, если в дальнейшем нам нужно будет открывать окно справки не пять, а пятьдесят раз? Снова перезаписывать скрипт или скопировать имеющийся участок кода 10 раз? Естественно, такой подход является неправильным! Вот как будет выглядеть измененный скрипт:

function Test1()

{

  var  notepad;

  var  wndNotepad;

  var i;

  notepad = Sys.Process(“notepad”);

  wndNotepad = notepad.Window(“Notepad”, “*”);

 

  for(i = 0; i < 5; i++)

  {

    wndNotepad.MainMenu.Click(“Help|About Notepad”);

    notepad.Window(“#32770″, “About Notepad”).Window(“Button”, “OK”).ClickButton();

  }

}

Теперь если нам понадобится открыть окно справки 50 раз, нам необходимо лишь изменить одну цифру в цикле.

Это лишь очень простой пример того, как запись усложняет дальнейшую работу со скриптами. В настоящих проектах все может быть гораздо сложнее.

Кроме того, с помощью записи можно создавать лишь очень простые скрипты. Если вы собираетесь создавать набор хорошо спроектированных скриптов, которые будут постепенно дополняться, то вам придется использовать какой-либо фреймворк. А в случае использования фреймворков возможность записи скриптов обычно отпадает, так как скрипты имеют более сложную структуру, чем просто набор действий с приложением.

Назад: 3.2 Использование стандартов именования Содержание Дальше: 3.4 Использование именования (NameMapping) и псевдонимов (Aliases)