
рдкрд░рд┐рдЪрдп
рдореИрдВ рдЙрди рд╕рднреА рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдЙрдкрдпреЛрдЧреА рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдмрд╕ рджрд┐рд▓рдЪрд╕реНрдк рдереЗред рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдордиреЗ рд╕реЗрд▓реЗрдирд┐рдпрдо рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛, рдФрд░ рдЕрдм, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рд╣рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рддрд╣рдд рдЖрд╡реЗрджрди рдХреЗ рдкрдиреНрдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдореЗрдВ рдореИрдВ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реВрдВрдЧрд╛
- рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдПрдХ рдЕрд▓рдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╣реЛрдВрдЧреЗ, рдореИрдВрдиреЗ рдЗрд╕реЗ Autotests.WebPages рдХрд╣рд╛ рд╣реИ
- рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред
- рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рд╡реЗрдм рдкреЗрдЬреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рдПрдВрдЧреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MySite / Home / Help рдкреЗрдЬ рдХрд╛ рд╡рд┐рд╡рд░рдг рдорджрдж рдирд╛рдордХ рдХрдХреНрд╖рд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
- рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реНрдерд╛рди рд╕рдВрд░рдЪрдирд╛ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╣реИ рдФрд░ рд╡реЗрдм рдкреГрд╖реНрдареЛрдВ рдХреЗ рдкреЗрдбрд╝ рдХреЛ рджреЛрд╣рд░рд╛рдПрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорджрдж рдкреГрд╖реНрда рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд░реВрдЯ \ Home \ Help.cs рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рдирд╛рдорд╕реНрдерд╛рди (рдирд╛рдорд╕реНрдерд╛рди) рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ред Autotests.WebPages.Root.Home
- рдкреГрд╖реНрдареЛрдВ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореБрдЦреМрдЯрд╛ (рдореБрдЦреМрдЯрд╛), рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рдкреГрд╖реНрда, рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд╣рд╛рдпрдХреЛрдВ рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдбрд╛рд▓рдирд╛ рдХрд╛рдлреА рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ
рд╕рдВрджрд░реНрдн
рднрд╛рдЧ 1: рдкрд░рд┐рдЪрдпрднрд╛рдЧ 2.1: рд╕реЗрд▓реЗрдирд┐рдпрдо рдПрдкреАрдЖрдИ рдЖрд╡рд░рдг - рдмреНрд░рд╛рдЙрдЬрд╝рд░рднрд╛рдЧ 2.2: рд╕реЗрд▓реЗрдирд┐рдпрдо рдПрдкреАрдЖрдИ рдЖрд╡рд░рдг - рд╡реЗрдмрдЗрдореЗрдВрдЯрднрд╛рдЧ 3: рд╡реЗрдмрдкреЗрдЬ - рдкреГрд╖реНрдареЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛рднрд╛рдЧ 4: рдЕрдВрдд рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛рдкреЗрдЬрдмреЗрд╕ рдХреНрд▓рд╛рд╕
рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИред рд╣рдорд╛рд░реЗ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╣реЛрдЧрд╛? рдХрдо рд╕реЗ рдХрдо:
- url рдкреЗрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
- рдЙрджреНрдШрд╛рдЯрди рдкреГрд╖реНрда
- рдкреЗрдЬ рдирд╛рдо рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ
- рд▓рд┐рдВрдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдкреЗрдЬрдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЙрди рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рдХрд╕реНрдЯрдо рдкреЙрдк-рдЕрдк рд╡рд┐рдВрдбреЛ рдХрд┐рд╕реА рд╕рд╛рдЗрдЯ рдХреЗ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдкрд░ рдкреЙрдк рдЕрдк рдХрд░ рд╕рдХрддреА рд╣реИ, рддреЛ рд╣рдо ClosePopup () рд╡рд┐рдзрд┐ рд▓рд┐рдЦреЗрдВрдЧреЗред рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдкрд░ рдПрдХ рд╕рд╛рдЗрдЯ рдореЗрдиреВ рд╣реИред рдлрд┐рд░ рдЗрд╕ рдореЗрдиреВ рдХреЛ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред
namespace Autotests.WebPages { public abstract class PageBase { public Uri Url { get { Browser.WaitAjax(); return GetUriByRelativePath(RelativePath); } } public void Open() { Contract.Requires(Url != null); Contract.Ensures(Browser.Url == Url, string.Format("{0} != {1}", Browser.Url, Url)); Browser.WaitAjax(); if (Browser.Url == Url) return; Browser.Navigate(Url); } public Type PageName() { return GetType(); } protected void Navigate(Uri url) { Contract.Requires(url != null); Browser.Navigate(url); } protected static Uri GetUriByRelativePath(string relativePath) { Contract.Requires(!string.IsNullOrEmpty(relativePath)); return new Uri(string.Format("{0}{1}", SharedSettings.TestEnvironmentUrl, relativePath)); } private string RelativePath { get { const string rootNamespaceName = "Autotests.WebPages.Root"; const string stringToDelete = "Page"; var fullName = GetType().FullName; Contract.Assume(fullName != null); return fullName.Replace(rootNamespaceName, "").Replace(".", "/").Replace(stringToDelete, ""); } } } }
RelativePath рдЙрд╕ рд╡реЗрдм рдкреЗрдЬ рдХреЗ рдирд╛рдо рдФрд░ рд╕реНрдерд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдореИрдЬрд┐рдХ рд╢рдмреНрдж "рдкреЗрдЬ" рдХреЛ рд╣рдЯрд╛рдирд╛ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдмреИрд╕рд╛рдЦреА рд╣реИ рдЬрдм рд╕рд╛рдЗрдЯ рдкрд░ рдкреЗрдЬ рдХрд╛ рдирд╛рдо рдЖрд░рдХреНрд╖рд┐рдд рдпрд╛ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╢рдмреНрдж "рдкреЗрдЬ" рдХреЛ рдХреЗрд╡рд▓ рдкреГрд╖реНрда рд╡рд┐рд╡рд░рдг рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред
SharedSettings.TestEnvironmentUrl - рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд▓ рдХрд╛ рдкрддрд╛ред рдЗрд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд▓реЙрдЧрдСрди рдкреЗрдЬ рд╡рд┐рд╡рд░рдг
рдЕрдм, рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛ (рд╡реИрд╕реЗ, рдХреНрдпрд╛ рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЗ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ?)ред
рд▓реЙрдЧрдСрди рдкреГрд╖реНрда рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:
public class LogOn : PageBase { #region Elements private static readonly WebElement LoginEdit = new WebElement().ById("Login"); private static readonly WebElement PasswordEdit = new WebElement().ById("Password"); private static readonly WebElement RememberMeCheckbox = new WebElement().ById("Remember"); private static readonly WebElement ValidationSummary = new WebElement().ByClass("ValidationSummary"); #endregion public void DoLogOn(UserLoginInfo userLoginInfo) { LoginEdit.Text = userLoginInfo.Login; PasswordEdit.Text = userLoginInfo.Password; RememberMeCheckbox.SetCheck(userLoginInfo.RememberMe); Browser.ExecuteJavaScript("$('#LogOnForm').submit()"); if (Browser.Url == Main.Url) return; if (ValidationSummary.Exists()) throw new LogOnValidationException(); throw new Exception("Unknown logon exception."); } }
рдЗрд╕рд▓рд┐рдП, рдкреГрд╖реНрда рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб), рдЪреЗрдХрдмреЙрдХреНрд╕ "рдореБрдЭреЗ рдпрд╛рдж рд░рдЦреЗрдВ" рдФрд░ "рд▓реЙрдЧрд┐рди" рдмрдЯрди рд╣реИред рдореИрдВрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЗрд╕ рдмрдЯрди рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рддрддреНрд╡реЛрдВ рдХреЗ рд╣реЗрд░рдлреЗрд░ рдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП Browser.ExecuteJavaScript рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВред
DoLogOn рд╡рд┐рдзрд┐ рдХреБрдЫ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд▓реЗрддреА рд╣реИ, рдлреЙрд░реНрдо рднрд░рддреА рд╣реИ рдФрд░ рдлреЙрд░реНрдо рдЬрдорд╛ рдХрд░рддреА рд╣реИред рдпрджрд┐ рдЙрд╕рдХреЗ рдмрд╛рдж рдореБрдЦреНрдп рдкреГрд╖реНрда Browser.Url == Main.Url рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рддреА рд╣реИред рдпрджрд┐ рдЗрдирдкреБрдЯ рд╡рд┐рдлрд▓ рд╣реБрдЖ рдФрд░ рдПрдХ ValidationSummary.Exists () рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рдЬрд╛рддреА рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рдПрдХ LogOnValidationException рдлреЗрдВрдХрддрд╛ рд╣реИред рдЕрдиреНрдп рд╕рднреА (рдЕрдирдЬрд╛рдиреЗ) рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ рдЕрдкрд╡рд╛рдж "рдЕрдЬреНрдЮрд╛рдд рд▓реЙрдЧрдСрди рдЕрдкрд╡рд╛рдж" рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдлреЗрдВрдХрд╛ рдЧрдпрд╛ рд╣реИред
PageBase рд╕реЗ рд▓реЙрдЧрдСрди рд╢реНрд░реЗрдгреА рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдУрдкрди () рд╡рд┐рдзрд┐ред рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ рдЬрдм рдХрд┐рд╕реА рдкреГрд╖реНрда рдХреЛ рдХрд┐рд╕реА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓реЙрдЧрдСрди рдХреНрд▓рд╛рд╕ рдореЗрдВ рдУрдкрди рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рднрд╛рд░ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛:
public void Open(int userId) { var url = new Uri(string.Format("{0}?userId={1}", Url, userId)); Navigate(url); }
рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ, рд╣рдо рдПрдХ рдирдпрд╛ рдпреВрдЖрд░рдПрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдЬреЛрдбрд╝реЗрдВ) рдФрд░ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЛрдИ рдЫрд┐рдкреА рд╣реБрдИ рдЖрд░рдВрднреАрдХрд░рдг рдирд╣реАрдВ рд╣реИ (рдкреЗрдЬрдлреИрдХреНрдЯ рдпрд╛рдж рд░рдЦреЗрдВ), рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рдордп рддрддреНрд╡реЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдЬрд╛рдПрдЧреАред
рдореБрдЦреМрдЯрд╛ рдкреГрд╖реНрда
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЖрдк рдореБрдЦреМрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЗрддрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреЗрдЬ рдХрдХреНрд╖рд╛рдПрдВ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП (рдКрдкрд░ рдЪрд┐рддреНрд░ рджреЗрдЦреЗрдВ), рдкреГрд╖реНрда рд╡рд░реНрдЧ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
namespace Autotests.WebPages { public static class Pages { public static LogOn LogOn = new LogOn(); public static class Home { public static Help Help = new Help (); public static Main MainLogOut = new MainLogOut (); } } }
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рд╣рдо рдкреГрд╖реНрдареЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
Pages.LogOn.DoLogOn(...); Pages.Home.Help.Open();
рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдкреГрд╖реНрда рдкрджрд╛рдиреБрдХреНрд░рдо рд╕рд╛рдЗрдЯ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдлреБрдл, рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдореЗрд░реЗ рдкрд╛рд╕ рдХрд╛рдлреА рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрдпрд╛ рдерд╛, рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЛрдб рдирд╣реАрдВ рдерд╛ред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдкреАрдПрдо рдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдХреЛрдИ рдкреНрд░рд╢реНрди / рд╕реБрдЭрд╛рд╡ рд▓рд┐рдЦреЗрдВред рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рдЖрдЦрд┐рд░рдХрд╛рд░, рд╣рдо рдСрдЯреЛрдЯреИрд╕реНрдЯреНрд╕ =) рд▓рд┐рдЦреЗрдВрдЧреЗред рдЗрд╕рдореЗрдВ рдореИрдВ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рджреВрдВрдЧрд╛ рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╡рд░реНрдХрд┐рдВрдЧ рд╡рд░реНрдЬрди рдХрд╛ рд▓рд┐рдВрдХ рджреВрдВрдЧрд╛ред