рд╣реИрд▓реЛ, рдкреНрд░рд┐рдп Habrosociety! рдореИрдВ рд╕реА # рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рд╕реЗрд▓реЗрдирд┐рдпрдо рд╡реЗрдмрдбреНрд░рд╛рдЗрд╡рд░ 2.x рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдЖрдпреЛрдЬрди рдХреЗ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрдИ рд╢реЛрдз, рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдФрд░ рд╡рд┐рдХрд╛рд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдФрд░, рд╢рд╛рдпрдж, рдореЗрд░реЗ рд╢рд┐рдХреНрд╖рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ)ред
рд╢рд╛рдпрдж рдпрд╣ рдкреЛрд╕реНрдЯ рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░реЗрдЧреА рдЬреЛ рдЕрднреА рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реЛрдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЯреНрд░реЗрдирд┐рдВрдЧ
рд╕реЗрд▓реЗрдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдорд╛рд╣реМрд▓, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ;
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд┐рдд рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП NUnit рдХрд╛рд░реНрдпрдХреНрд░рдо (рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:
www.nunit.org/index.php?p=download );
рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рджреЛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рдореЛрдЬрд╝рд┐рд▓рд╛ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░: рдлрд╛рдпрд░рдмрдЧ рдФрд░ рдлрд╛рдпрд░рдкреИрде (рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдорд╛рд╣реМрд▓ рдмрдирд╛рдирд╛
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреИрд╕реЗ
рдХреНрд▓рд╛рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рдЖрдк рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓реАрдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╣реАрдВ)ред рдпрд╣ рдПрдХ рдирд╛рдо рджреЗрдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдирд╛ рдЙрдЪрд┐рдд рд╣реИред
рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП 3 рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
NUnit (nunit.framework) - рд╕реАрдзреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп (рди рдХреЗрд╡рд▓ рд╕реЗрд▓реЗрдирд┐рдпрдо рдХреЗ рд▓рд┐рдП);
WebDriver + WebDriver.Support - рд╕реАрдзреЗ рд╕реЗрд▓реЗрдирд┐рдпрдо рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реАред
рдЖрдк NuGet рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ
code.google.com/p/selenium/downloads/list рд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
рдЖрдзрд╛рд░ рд╡рд░реНрдЧ
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╕рд╣рд╛рдпрдХ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕реЗ
рд╕реЗрд▓реЗрдирд┐рдпрдордЯреЗрд╕реНрдЯрдмреЗрд╕ (рдХреЙрд▓ рдпрд╣ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рдХрд╣реЗрдВред рд╣рдо рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕ рд╡рд░реНрдЧ рд╕реЗ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛рдПрдВ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реЗрдВрдЧреАред рдЖрдкрдХреЛ
рдХреНрд▓рд╛рд╕ рдореЗрдВ
[TestFixture] рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рднреА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХреНрд▓рд╛рд╕ рдХреЛ рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдорд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ, рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдкрд░реАрдХреНрд╖рд╛ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ рд╣реИрдВред
рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╕рдВрд░рдХреНрд╖рд┐рдд IWebDriver рдбреНрд░рд╛рдЗрд╡рд░ ; - рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдЯреЗрд╕реНрдЯ (рдПрд╕) рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред 4 рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░ (+ рдХрдИ рдЕрдВрдбрд░ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ) рд╣реИрдВ: рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕рдбрд╛рдЗрд╡рд░, рдЗрдВрдЯрд░рдиреЗрдЯрдПрдХреНрд╕рдкреНрд▓реЙрд░рдбреНрд░реАрд╡рд░, рдХреНрд░реЛрдордбреНрд░рд╛рдЗрд╡рд░, рдПрдЪрдЯреАрдПрдордПрд▓рдпреВрдиреАрдЯрдбреНрд░рд╛рдЗрд╡рд░ (рдмрд┐рдирд╛ рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╡рд░реНрдЪреБрдЕрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░)ред
рд╣рдо рдХрдХреНрд╖рд╛ рдореЗрдВ 4 рд╡рд┐рдзрд┐рдпрд╛рдБ рднреА рдШреЛрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдХреБрдЫ рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдпрд╛ \ _ рдФрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреА):
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп TestInitialize () [TestFixtureSetUp] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде - рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд┐ рдХреЛ рдХрд┐рд╕реА рднреА рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдмрд╛рд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрджрд┐ рдХрдИ рд╡рд░реНрдЧ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реА рдХрдХреНрд╖рд╛ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдлрд┐рд░ рджреВрд╕рд░реА рдХрдХреНрд╖рд╛ рдХреЗ рддрд░реАрдХреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдЖрджрд┐)ред рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ, рдбреНрд░рд╛рдЗрд╡рд░ рдЪрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
Driver = new FirefoxDriver();
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп TestCleanup () [TestFixtureTearDown] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде - рдкрд┐рдЫрд▓реА рдкрджреНрдзрддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдСрдкрд░реЗрд╢рди рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рджред рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдЖрдк рдЕрдЧрд▓реА рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рдЦреБрд▓реЗ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд░реИрдо рд░рдмрдбрд╝ рдирд╣реАрдВ рд╣реИ):
Driver.Quit();
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп OneTearDown () [TearDown] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде - рд╡рд┐рдзрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдирдП рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреБрдХреАрдЬрд╝ рд╕рд╛рдлрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
Driver.Manage().Cookies.DeleteAllCookies();
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп OneSetUp () [рд╕реЗрдЯрдЕрдк] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде - рд╡рд┐рдзрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╕рдордп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдХреЛ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (HtmlUnitDriver рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ):
Driver.Manage().Window.Maxmize();
рдЖрд╡рд░рдг
рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреЗрд╕реНрдЯ (рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рднреА) рд▓рд┐рдЦрддреЗ рд╕рдордп, рдХреЛрдб рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕рдВрднрд╡ рд╣реИ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрдЧрд╛)ред рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдЕрд╡реНрдпрд╡рд╕реНрдерд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд╣рд╛рдпрдХ рдХреНрд▓рд╛рд╕
рд╕реНрдЯреЗрдЯрд┐рдХ рдХреНрд▓рд╛рд╕ рд░реИрдкрд░ рдмрдирд╛рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдХреЛрдб рдХреА рдирдХрд▓ рдХрд░рддреЗ рд╣реИрдВред
рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдХреА рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдВрдЧреЗ:
Driver.Navigate().GoToUrl(<>);
рдЗрд╕рд▓рд┐рдП, рд░реИрдкрд░ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдХ
рдирд┐рдЬреА рд╕реНрдЯреИрдЯрд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ _domain рдлрд╝реАрд▓реНрдб рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЙрд╕ URL рдХреЛ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЗрд╕ URL рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐:
рдХреЛрдб рдХрд╛ рдЯреБрдХрдбрд╝рд╛ public static string GetUrl() { _domain = "http:\\www.yandex.ru"; return _domain; }
Wrapper.cs рдФрд░
SeleniumTestBase.cs рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдореЗрдВ, рддрд░реАрдХреЛрдВ рдХреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЕрдВрджрд░ (рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реЗрд▓реЗрдирд┐рдпрдордЯреЗрд╕реНрдЯрдмреЗрд╕ рдХреЗ рдЕрдВрджрд░) рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд╣рд▓реЗ рдпрд╛ рдмрд╛рдж рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЗред
рд╕рд╣рд╛рдпрдХ рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рддреЗ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

рдкрд░реАрдХреНрд╖рдг рд▓реЗрдЦрди рдЙрджрд╛рд╣рд░рдг
рдПрдХ рдирдпрд╛ рдкрд░реАрдХреНрд╖рдг рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕реЗ TestClass1.cs рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВред рдкрд╣рд▓реЗ рд╣рдо рдПрдХ рд╕рд░рд▓ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╣рдо рд╕рдордЭрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдб рдХреА рдХреМрди рд╕реА рдкрдВрдХреНрддрд┐ рдХреНрдпрд╛ рдХрд░рддреА рд╣реИред
рдЧреЛрдЯреЛ рдпреИрдВрдбреЗрдХреНрд╕ [Test, Timeout(10000)] public void Test1() { Driver.Navigate().GoToUrl(Wrapper.GetUrl()); Assert.IsTrue(Driver.Title == ""); }
[рдкрд░реАрдХреНрд╖рдг] - рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╣реИред
рдЯрд╛рдЗрдореЛрдЯ (int millSec) - рдХреЗрд╡рд▓ рдЯреЗрд╕реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдЯреЗрд╕реНрдЯ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреА рдЕрдзрд┐рдХрддрдо рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд░реАрдХреНрд╖рдг рддреБрд░рдВрдд (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд░рдирдЯрд╛рдЗрдо рдкрд░) рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рдлрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп - рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдХреЗрд╡рд▓ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдПрдХ рдкрд╣реБрдВрдЪ рд╕рдВрд╢реЛрдзрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдХреЛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
Driver.Navigate ()ред GoToUrl (Wrapper.GetUrl ()) - рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреНрд░рд╛рдЗрд╡рд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП
рдпреИрдВрдбреЗрдХреНрд╕ рдкреЗрдЬ рдЦреЛрд▓реЗрдЧрд╛ред
Assert.IsTrue (Driver.Title == "Yandex") - рдПрдХ рдкреНрд░рддреНрдпрдХреНрд╖ рдЬрд╛рдВрдЪ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдпрд╣ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдкреГрд╖реНрда рдХрд╛ рд╢реАрд░реНрд╖рдХ "Yandex" рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдкрд╛рд░рд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд░реАрдХреНрд╖рдг рдЪрд▓ рд░рд╣рд╛ рд╣реИ
рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ -
NUnit (рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ)ред
рд╣рдо рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ .dll рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ
NUnit рдЪрд▓рд╛рдПрдВред рдЗрд╕рдХреЗ рдмрд╛рдж рдлрд╛рдЗрд▓-рдУрдкрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдПрдХ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА рдЬрд┐рд╕рдореЗрдВ рд╣рдореЗрдВ рдмрд╕ рд╕рдВрдХрд▓рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдмрд╛рдИрдВ рдУрд░ рд╣рдо рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рдкреЗрдбрд╝ рджреЗрдЦреЗрдВрдЧреЗред рдЗрд╕ рдкреЗрдбрд╝ рдореЗрдВ, рдЖрдк рдПрдХ рдкрд░реАрдХреНрд╖рдг, рд╡рд░реНрдЧ рдпрд╛ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛рдПрдВ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рд░рди рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рд╕реНрдЯреЙрдк рдмрдЯрди рдХреЛ рджрдмрд╛рдХрд░ рдЖрдк рдХрд┐рд╕реА рднреА рд╕рдордп рд░рди рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдирдХрд╛ рд░рдВрдЧ рдкреЗрдбрд╝ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛: рд╣рд░рд╛ - рдкрд░реАрдХреНрд╖рдг рдкрд╛рд░рд┐рдд, рд▓рд╛рд▓ - рдкрд░реАрдХреНрд╖рдг рдЧрд┐рд░ рдЧрдпрд╛, рдкреАрд▓рд╛ - рдкрд░реАрдХреНрд╖рдг рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЧрд┐рд░рд╛рд╡рдЯ рдирд╣реАрдВ), рдЧреНрд░реЗ - рдкрд░реАрдХреНрд╖рдг рдЕрднреА рддрдХ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдмрдЯрди рдХреЗ рдиреАрдЪреЗ рдПрдХ рдЦрд┐рдбрд╝рдХреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрдк рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдкрд░реАрдХреНрд╖рдг рдХреНрдпреЛрдВ рдЧрд┐рд░ рдЧрдпрд╛ред
рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА
рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ ChromeDriver рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдзреАрдореЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдУред
ChromeDriver рдФрд░ InternetExplorerDriver рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреНрд░рд╛рдЗрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
[TestCase (var v1, ..., var vOver9000)] - рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдкрд░реАрдХреНрд╖рдг рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдкрд░
рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдХрд┐рддрдиреЗ рднреА рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдзрд┐ рдХреЛ рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдЪрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ред рд░рдЪрдирд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЗ рд╕рдорд╛рди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП (1 рдЪрд░ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЗ рд▓рд┐рдЦрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдФрд░ рдлрд┐рд░ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ 2 рдХреЗ рд╕рд╛рде)ред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
рдЯреЗрд╕реНрдЯрдХреЗрд╕ () [Test, Timeout(10000)] [TestCase("", 1)] [TestCase("", 2)] [TestCase("", 3)] [TestCase("", 4)] [TestCase("", 5)] public void Test2(string str, int days) { }
рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдорд▓реЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛
[рд░реЗрдВрдЬ ()] рдФрд░ [рдореВрд▓реНрдп ()] рд╣реИрдВ ред рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрд╛рд░рд┐рдд рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд░реЗрдВрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдиреНрдпреВрдорд░реЗрдЯреЗрдб рд╡реИрд▓реНрдпреВрдЬрд╝ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЧреИрд░-рдПрдиреНрдпреВрдореЗрд░реЗрдЯреЗрдб
рд╡реИрд▓реНрдпреВрдЬрд╝ рдХреЗ рд▓рд┐рдП
рд╡реИрд▓реНрдпреВрдЬрд╝ ред рд╕рд╛рде рд╣реА, рдЪрд▓рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЪрд░ рдХреЗ рд╕рднреА рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧреАред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
рд╢реНрд░реЗрдгреА + рдорд╛рди [Test] public void Test3([Range(0,3)]int a, [Values(тАЬ0тАЭ, тАЬ1тАЭ, тАЬ2тАЭ, тАЬ3тАЭ)]string b) { Assert.IsTrue(a.ToString() == b); }
16 рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ 4 рд╣реА рдкрд╛рд╕ рд╣реЛрдВрдЧреЗред
рдЯрд┐рдкреНрд╕
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЖрдкрдХреЛ
рдПрдПрдП рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
- рд╡реНрдпрд╡рд╕реНрдерд╛-рдЕрдзрд┐рдирд┐рдпрдо-рдЕрднрд┐рдХрд╛рд░рдХ :
рд╡реНрдпрд╡рд╕реНрдерд╛ - рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдХреНрд░рд┐рдпрд╛рдПрдВ;
рдЕрдзрд┐рдирд┐рдпрдо - рд╕реАрдзреЗ рдкрд░реАрдХреНрд╖рдг;
рдЬреЛрд░ - "рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо == рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдгрд╛рдо" рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд▓реЙрдХред
рдКрдкрд░ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдВ, рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдкреБрдирд░реНрд▓реЗрдЦрди рдХрд░реЗрдВ:
рдПрдПрдП рд╢реБрд░реВ [Test, Timeout(10000)] public void Test1() { Driver.Navigate().GoToUrl(Wrapper.GetUrl()); var title = Driver.Title; Assert.IsTrue(title == ""); }
рдпрд╣рд╛рдВ рдЕрд░рд▓ рдпреВрд░реЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдПрдХреНрдЯ рд╢реАрд░реНрд╖рдХ рдкреГрд╖реНрда рдХреА рдЧрдгрдирд╛ рд╣реИ, рдПрд╕реНрдЯрд░ "рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо == рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рдгрд╛рдо" рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рд╣реИред
рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдПрдПрдП рдкреВрд░рд╛ [Test, Timeout(10000)] public void Test1() {
рдЖрджрдд рдореЗрдВ рд▓реЗ рд▓реЛ: рдПрдХ рдкрд░реАрдХреНрд╖рдг - рдПрдХ рдЬреЛрд░ред рдпрд╣ рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╛ рдЪрд░рдо рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрд▓реНрд▓рдВрдШрди рди рдХрд░реЗрдВ (рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪреЗрдХ рдХреЗ рд╕рд╛рде, рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ)ред
рдХреЛрдб рдореЗрдВ рдХрдИ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдерд┐рд░рд╛рдВрдХ рдореЗрдВ рд░рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рдЗрдЯ рдХрд╛ рд▓реЗрдЖрдЙрдЯ рд▓рдЧрд╛рддрд╛рд░ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЪрдпрдирдХрд░реНрддрд╛ред рдлрд┐рд░, рдЪрдпрдирдХрд░реНрддрд╛ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп, рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ 20 рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдирд╣реАрдВред
рдХрднреА-рдХрднреА рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдкрд╣рд▓рд╛ рд▓реЙрдиреНрдЪ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗ рдЧрд┐рд░ рд╕рдХрддрд╛ рд╣реИ, рдкрд╣рд▓реА рдмрд╛рд░ рдЬрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреНрд░рд╛рдЗрд╡рд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреЗрдЬ рдХреЛ рд▓реЛрдб рд╣реЛрдиреЗ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдХреБрдЫ рдЯреЗрд╕реНрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ рдореЗрдВ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЧреБрдгрд╡рддреНрддрд╛ рдорд╛рдирдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреЗрдЬ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рд╕рдордп 10 рд╕реЗрдХрдВрдб рд╣реИред рдкреГрд╖реНрда рдкрд░ 11 рд╕реЗрдХрдВрдб (рдЕрдзрд┐рдХрддрдо 12) рдореЗрдВ рдПрдХ рддрддреНрд╡ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред
рдкреЗрдЬ рдкрд░ рдХреБрдЫ рддрддреНрд╡реЛрдВ рдХреЛ рд╕реЗрд▓реЗрдирд┐рдпрдо + рд╕реА # рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдРрд╕реЗ рдкреГрд╖реНрда рддрддреНрд╡реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ + JQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ + jQuery protected IJavaScriptExecutor _jsExecutor; var script = @"var c = $('table>tbody:visible').last();" + "c = c.find(\"tr:nth-child(2)\");" + "c.find(\"td:nth-child(1)\").click();"; _jsExecutor = (IJavaScriptExecutor)Driver; _jsExecutor.ExecuteScript(script);
рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд░рдирд┐рдВрдЧ рдЯреЗрд╕реНрдЯ (NUnit рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЪреАрдЬ рдирд╣реАрдВ рд╣реИ), рдЖрдк рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ Visual Studio рдореЗрдВ ReSharper рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд░рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди NUnit рдХреЗ рд╡рд┐рдкрд░реАрдд, ReSharper рдПрдХ рдкреЗрдб рдРрдб-рдСрди рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рддрд░реАрдХреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдпрд╣рд╛рдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрдХ рд╡реЗрдм рдкреЗрдЬ рдкрд░ рддрддреНрд╡реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдФрд░ рд╕реЗрд▓реЗрдирд┐рдпрдо рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдПрд╕реЗрд░ рд╡рд░реНрдЧред рдПрдХ рдФрд░ рд▓реЗрдЦ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реЛрдЧрд╛ред
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЕрдкрдиреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдЧрд╛ред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!