рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдирд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдмрддрд╛рдКрдВрдЧрд╛:
- Appium рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреИрд╕реЗ рдЪрд▓рд╛рдПрдВ
(рдкреАрд╕реА рдУрдПрд╕ - рд╡рд┐рдВрдбреЛрдЬ 10) - рд╣рд╛рдЗрдмреНрд░рд┐рдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдХреИрд╕реЗ рдмрдЪреЗрдВ
- рдХреБрдЫ рд╕рд░рд▓ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдЖрджреЗрд╢ред рд╣рдо рдЬрд╛рд╡рд╛ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
рдХрд╛рд░реНрдп
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣рд╛рдЗрдмреНрд░рд┐рдб рдореЛрдмрд╛рдЗрд▓ рдРрдк рдкрд░реАрдХреНрд╖рдгред
рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрд╡реЗрджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ:
рд╢рд╛рдпрдж рдпреЗ рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрд╕реА рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред
рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ
рд╣рдо Appium рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░реЗрдВрдЧреЗред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рд╣реИред
рдЖрдк
рдбреЗрд╡рд▓рдкрд░ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкреВрд░реА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдбрд┐рд╕реНрдХ рдкрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЬрдЧрд╣ рдореЗрдВ, "рдЕрдкреНрдкрд┐рдпрдо рдСрдЯреЛрдореЗрд╢рди" рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
C:\Appium automation
рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЖрдЧреЗ (C: \ Appium рд╕реНрд╡рдЪрд╛рд▓рди) рдХреБрдЫ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ:
рдпрджрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдШрдЯрдХ, рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП рдЖрдк рдХреЗрд╡рд▓ рд╕рдВрдмрдВрдз рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддред рдпрд╣ рд╕рдм рдХреБрдЫ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рдирд┐рд░реНрдорд┐рдд рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХреЛ рднрд░рдирд╛ рдФрд░ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛
1. рдЬрд╛рд╡рд╛ рдПрд╕рдбреАрдХреЗ
рд▓рд┐рдВрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:

рдЕрдЧрд▓рд╛, рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирд▓реЛрдб рдкреЗрдЬ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд┐рдВрдбреЛрдЬ 10 x64 рд╣реИ, рдЪреБрдиреЗрдВ:

рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдЦреЛрд▓реЗрдВ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ .exe-shnik (рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди рдкрде рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ) рдХреЛ рдЕрдирдкреИрдХ рдХрд░реЗрдВ:
C:\Program Files\Java\jdk-12.0.1
(рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд╕рдордп рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ)2. рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реЗрдВ ред
рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
C:\Appium automation\Android Studio
Android Studio рдХреЗ рдкрд╣рд▓реЗ рд▓реЙрдиреНрдЪ рдХреЗ рджреМрд░рд╛рди, рдЖрдкрдХреЛ
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ :
- Instal Type рдХрд╕реНрдЯрдо рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рдПрдХ рдереАрдо рдЪреБрдиреЗрдВ рдЬрд┐рд╕реЗ рдЖрдк рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- Android SDK рд╕реНрдерд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ C: \ Appium рд╕реНрд╡рдЪрд╛рд▓рди \ Android SDK, рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рдПрдореБрд▓реЗрдЯрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдкрд░ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рд╕рдорд╛рдкреНрдд рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред
Android Studio рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБ:- рдПрдХ рдирдпрд╛ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо, рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдпрд╛ рдЖрдк рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдХ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рдлрд╝реЛрди рдФрд░ рдЯреЗрдмрд▓реЗрдЯ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдореЗрдВ, "API 23: Android 6.0 (рдорд╛рд░реНрд╢рдореИрд▓реЛ) рдЪреБрдиреЗрдВ, рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рдЦрд╛рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдЪреБрдиреЗрдВ, рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рд╕рдорд╛рдкреНрдд рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
рдПрд╕рдбреАрдХреЗ рдЙрдкрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВAndroid Studio рдореЗрдВ, Tools - SDK Manager рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдПрд╕рдбреАрдХреЗ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдЯреИрдм рдкрд░, рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЬрд┐рд╕ рдкрд░ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗред
рдФрд░, рдПрд╕рдбреАрдХреЗ рдЯреВрд▓реНрд╕ рдкрд░, рдЖрдЗрдЯрдо рдЪреБрдиреЗрдВ:
- Android SDK рдмрд┐рд▓реНрдб-рдЯреВрд▓реНрд╕
- Android рдПрдореБрд▓реЗрдЯрд░
- Android SDK рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдЯреВрд▓реНрд╕
- Android рдПрд╕рдбреАрдХреЗ рдЙрдкрдХрд░рдг
- Android рдПрд╕рдбреАрдХреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди
- рд╕рд╣рд╛рдпрдХ рднрдВрдбрд╛рд░
рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдпрд╛ рдареАрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдШрдЯрдХреЛрдВ рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред

3. рдкрд╛рде рдЪрд░ рдмрдирд╛рдПрдВ
"рдореЗрд░рд╛ рдХрдВрдкреНрдпреВрдЯрд░" - "рдЧреБрдг" - "рдЙрдиреНрдирдд рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕" рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
"рдЙрдиреНрдирдд" рдЯреИрдм рдкрд░ рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ, "рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ ..." рдЪреБрдиреЗрдВ
"рд╕рд┐рд╕реНрдЯрдо рдЪрд░" рдмреНрд▓реЙрдХ рдореЗрдВ, рдПрдХ рдирдпрд╛ рдЪрд░ рдмрдирд╛рдПрдВред

рдкрд╣рд▓рд╛ рдЪрд░рдЪрд░ рдирд╛рдо - JAVA_HOME
рдЪрд░ рдХрд╛ рдорд╛рди рд╣реИ
C:\Program Files\Java\jdk-12.0.1
(рдкрде рдЬрд╣рд╛рдБ рдЖрдкрдиреЗ jdk рдХреЛ рдЪрд░рдг 1 рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЗрдВ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓ (X86) рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛)
рджреВрд╕рд░рд╛ рдЪрд░рдЪрд░ рдирд╛рдо - ANDROID_HOME
рдЪрд░ рдХрд╛ рдорд╛рди рд╣реИ
C:\Appium automation\Android SDK
рдкрде рдЪрд░ рдЬреЛрдбрд╝рд╕рд┐рд╕реНрдЯрдо рдЪрд░ рдХреА рд╕реВрдЪреА рдореЗрдВ рдкрде рдЪрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдФрд░ "рдмрджрд▓реЗрдВ ..." рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ "рдмрдирд╛рдПрдБ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЪрд░ рдЬреЛрдбрд╝реЗрдВ:
- % ANDROID_HOME% \ emulator
- % ANDROID_HOME% \ platform-tools
- % ANDROID_HOME% \ Tools
- % ANDROID_HOME% \ Tools \ bin
рдирддреАрдЬрддрди, рдЖрдкрдХреЛ 4 рдирдП рдЪрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдареАрдХ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

4. рдЕрдкрд┐рдпрдо
Appium рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:- рд╣рдо http://appium.io/ рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ
- рдбрд╛рдЙрдирд▓реЛрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рд╣рдо Appium-windows-1.13.0.exe рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ (рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рдордп рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ)

рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ .exe рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЕрдкрдиреЗ рдкреАрд╕реА рдкрд░ Appium рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореИрдВрдиреЗ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ред
Appium рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛:- рд╣рдо рд▓рд┐рдВрдХ http://appium.io/downloads.html рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ
- рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рднрд╛рд╖рд╛ рдЪреБрдиреЗрдВ, рдЬрд╛рд╡рд╛
- рдбрд╛рдЙрдирд▓реЛрдб рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ .jar рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ
C:\Appium automation\Appium Lib
- рд╣рдо https://mvnrepository.com/artifact/junit/junit рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ
- рд╣рдо рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ (рдореЗрд░реЗ рдкрд╛рд╕ 4.12 рд╣реИ)
- .Jar рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ .jar рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдБ:
C:\Appium automation\Appium Lib
- рд╣рдо рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ https://mvnrepository.com/artifact/org.hamcrest/hamcrest-core
- рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ (рдореИрдВ 1.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ)
- .Jar рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ .jar рдлрд╝рд╛рдЗрд▓ рдХреЛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдБ:
C:\Appium automation\Appium Lib
рд╕реЗрд▓реЗрдирд┐рдпрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:- рд╣рдо рд▓рд┐рдВрдХ https://www.seleniumhq.org/download рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ
- рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рднрд╛рд╖рд╛ рдЪреБрдиреЗрдВ, рдЬрд╛рд╡рд╛
- рдбрд╛рдЙрдирд▓реЛрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЕрдирдкреИрдХ рдХрд░реЗрдВ:
C:\Appium automation\Selenium Lib
5. рдЗрдВрдЯреЗрд▓реАрдЬ рдЖрдИрдбрд┐рдпрд╛ рдХрдореНрдпреБрдирд┐рдЯреА рдПрдбрд┐рд╢рди
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ
https://www.jetbrains.com/idea/download рдкрд░ рдЬрд╛рдПрдВрд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдкрд╛рд╕ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ (рдпрд╣ рдПрдХ рдирд┐: рд╢реБрд▓реНрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ)ред
рдбрд╛рдЙрдирд▓реЛрдб рдкреГрд╖реНрда рдореЗрдВ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдФрд░ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдЦрд░реАрджрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рд▓реЗрдХрд┐рди, рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред
рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ .exe рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ (рдмрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╢реБрд░реВ рд╣реЛрдиреЗ рддрдХ рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ)
рдкрд╣рд▓рд╛ рдЗрдВрдЯреЗрд▓реАрдЬ рдЖрдИрдбрд┐рдпрд╛ рд▓реЙрдиреНрдЪ- "рд╕реЗрдЯрд┐рдВрдЧ рдЖрдпрд╛рдд рди рдХрд░реЗрдВ" рдЪреБрдиреЗрдВ
- рд╣рдо рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╕рдордЭреМрддреЗ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ
- рдПрдХ рд╡рд┐рд╖рдп рдЪреБрдиреЗрдВ
- рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- IntelliJ IDEA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
IntelliJ IDEA рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛- рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ
- рдЬрд╛рд╡рд╛ рдПрд╕рдбреАрдХреЗ рдХреЗ рд▓рд┐рдП рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
- рдирдпрд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ...
- рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдЬрд╛рд╡рд╛ SDK C: \ Program Files \ Java \ jdk-12.0.1 рдХреЗ рд▓рд┐рдП рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
- рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рдмреЙрдХреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ "рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдБ"
- рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рдФрд░ рд╕реНрдерд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
- рд╕рдорд╛рдкреНрдд рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
рдмрдирд╛рдИ рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕рдлрд╝рд╛рдЗрд▓ рдЪреБрдиреЗрдВ - рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛ ...
рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдореЙрдбреНрдпреВрд▓ - рдирд┐рд░реНрднрд░рддрд╛ - "+" рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ - рдЬрд╛рд░ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ ...

рдФрд░ рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдУрдХреЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдЕрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
6. рдПрдВрдбреНрд░реЙрдпрдб рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдЯрдЕрдк
рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдпреВрдПрд╕рдмреА рдХреЗрдмрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдореЗрдВ "рд╕реЗрдЯрд┐рдВрдЧ" - "рдлреЛрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ" рдкрд░ рдЬрд╛рдПрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдорд╛рд░реНрдЯрдлрд╝реЛрди рдкрд░, рд╕рдм рдХреБрдЫ рдЕрд▓рдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдиреАрдЪреЗ рдХреА рд░реЗрдЦрд╛ рд╣реИ, рдЖрдкрдХреЛ "рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░" рдвреВрдВрдврдирд╛ рд╣реЛрдЧрд╛ рдФрд░ 5-7 рдмрд╛рд░ рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдЯреЛрд╕реНрдЯрд░ рджрд┐рдЦрд╛рдИ рди рджреЗ рдХрд┐ "рдЖрдк рдЕрдм рдПрдХ рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ" (рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХрд╛ рдкрд╛рда рдореЙрдбрд▓ рд╕реЗ рдореЙрдбрд▓ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)
рдЗрд╕ рд╣реЗрд░рдлреЗрд░ рдХреЗ рдмрд╛рдж, "рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП" рдЕрдиреБрднрд╛рдЧ рдЖрдкрдХреЗ рдлрд╝реЛрди рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдореЙрдбрд▓ рд╕реЗ рдореЙрдбрд▓ рддрдХ рднреА рдЫрд┐рдкрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдпрд╣ "рд╕реЗрдЯрд┐рдВрдЧ" рдореЗрдВ рд╣реЛрдЧрд╛ - "рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП", рдФрд░ рдХрд╣реАрдВ "рд╕реЗрдЯрд┐рдВрдЧреНрд╕" - "рд╡рд┐рд╢реЗрд╖ рд╕реБрд╡рд┐рдзрд╛рдПрдБ" - "рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП", рдЖрджрд┐ред ред
рдЖрдкрдХреЛ "рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП" рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдиреЗ рдФрд░ "рдпреВрдПрд╕рдмреА рдбрд┐рдмрдЧрд┐рдВрдЧ" рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЬрдм рдЖрдк рдЕрдкрдиреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХреЛ USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ USB рдбрд┐рдмрдЧрд┐рдВрдЧ рдЕрдиреБрдорддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдЖрдк "рдЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ "рдУрдХреЗ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдлрд┐рд░ рдЕрдЧрд▓реА рдмрд╛рд░ рдлреЛрди рдЗрд╕ рдкреАрд╕реА рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╕рдВрджреЗрд╢ рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧрд╛ред
рдЖрдкрдХрд╛ рд╕рднреА рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред
рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕рдЖрдк рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
рд▓реЗрдХрд┐рди рдПрдХ рдЖрднрд╛рд╕реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░, рдкрд░реАрдХреНрд╖рдг рдЕрд╕рд▓реА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, Android Studio рдЦреЛрд▓реЗрдВ, рдлрд┐рд░:
- "рдЙрдкрдХрд░рдг" - "AVD рдкреНрд░рдмрдВрдзрдХ" - "+ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдмрдирд╛рдПрдВ ..."
- рдПрдХ рдЙрдкрдХрд░рдг рдЪреБрдиреЗрдВ, рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- Android рдХрд╛ рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдЪреБрдиреЗрдВ, рдЕрдЧрд▓рд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рдбрд┐рд╡рд╛рдЗрд╕ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рд╕рдорд╛рдкреНрдд рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
рдЕрдиреБрднрд╛рдЧ "рдЙрдкрдХрд░рдг" рдореЗрдВ рдХрд┐рдП рдЧрдП рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж - "рдПрд╡реАрдбреА рдкреНрд░рдмрдВрдзрдХ" рдЖрдк рдирд┐рд░реНрдорд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рджреЗрдЦреЗрдВрдЧреЗред рд╣рд░реЗ "рдкреНрд▓реЗ" рдЖрдЗрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреИрд╕реЗ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкреАрд╕реА рдиреЗ рдХрдиреЗрдХреНрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рджреЗрдЦрд╛ рд╣реИ?рдХрдорд╛рдВрдб рд▓рд╛рдЗрди ("рдкреНрд░рд╛рд░рдВрдн" - "рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ - рд╡рд┐рдВрдбреЛрдЬ" - "рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ") рдЪрд▓рд╛рдПрдБ
рдФрд░ adb devices рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрджрд┐ рдбрд┐рд╡рд╛рдЗрд╕ "USB рдбреАрдмрдЧрд┐рдВрдЧ" рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рддреЛ рдЖрдк рдХрдиреЗрдХреНрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рдЙрд╕рдХреЗ рдпреВрдбреАрдЖрдИрдбреА тАЛтАЛ(рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛) рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ:
List of devices attached UDID device
7. рд╣рдо рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд▓рд┐рдЦ тАЛтАЛрд░рд╣реЗ рд╣реИрдВ
рдЖрдпрд╛рдд рдЬреЛрдбрд╝реЗрдВред package name; import java.util.*; import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.android.AndroidElement; import io.appium.java_client.remote.MobileCapabilityType; import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.JavascriptExecutor; import java.net.MalformedURLException; import java.net.URL; import java.util.concurrent.TimeUnit;
рд╣рдо рд╕рд░реНрд╡рд░ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛Android рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
AndroidDriver<AndroidElement> driver = null;
рд╣рдо рдкреИрд░рд╛рдореАрдЯрд░ (рдЧреБрдг) рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:
DesiredCapabilities capabilities = new DesiredCapabilities();
рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдирд╛рдо (рдЖрдк рдЗрд╕реЗ "рд╕реЗрдЯрд┐рдВрдЧ" рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ - "рдлрд╝реЛрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ", рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ "рдЯреВрд▓" рдХреЗ рд▓рд┐рдП - "AVD рдкреНрд░рдмрдВрдзрдХ" - "рдирд╛рдо" рдлрд╝реАрд▓реНрдб):
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "MyPhone");
рдПрдкреАрдХреЗ рдХрд╛ рд▓рд┐рдВрдХ рдЬрд┐рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (.apk рдХреЛ рдПрдХ рдбреАрдмрдЧ рдмрд┐рд▓реНрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЖрдк рдФрд░ рдРрдкрд┐рдпрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХреЗрдВ):
capabilities.setCapability(MobileCapabilityType.APP, "C:\\Appium automation\\APK\\My-debug-Apk.apk");
Appium рдбреНрд░рд╛рдЗрд╡рд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ:
try { driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); } catch (MalformedURLException e) { System.out.println(e.getMessage()); }
рдпрд╣ рдХреЛрдб рдХрдиреЗрдХреНрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред
рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреАрдореЗрдВрд╕рдордп рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░рд╛рд╢рд┐ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 8 рд╕реЗрдХрдВрдбред (рдорд╛рди рдХреЛ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдкреЗрдЬ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
Thread.sleep(8000);
рд╣рдореЗрдВ ContextHandles рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЕрднреА рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (NATIVE_APP рдпрд╛ WEBVIEW):
Set<String> contextNames = driver.getContextHandles(); for (String contextName : contextNames) { System.out.println(contextName); }
рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдЕрдВрддрд┐рдо рдорд╛рди рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдпрд╣ рдЖрдкрдХреЛ WEBVIEW, tk рдкрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрджрд░реНрдн = NATIVE_APP:
driver.context((String) contextNames.toArray()[contextNames.toArray().length - 1]);
рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВрдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╣рд╛рдЗрдмреНрд░рд┐рдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрддреНрд╡реЛрдВ рдХреЛ WEBVIEW рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ NATIVE_APP рдореЗрдВ рдирд╣реАрдВ, рдлрд┐рд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╣рдореЗрдВ рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ FindElementByCssSelector рддрддреНрд╡ред
рдУрдХреЗ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:
driver.findElementByCssSelector(".button-ok").click();
- рдЬрд╣рд╛рдВ .рд▓реЗрдЯрди-рдУрдХреЗ рдПрд▓рд┐рдореЗрдВрдЯ рдХреНрд▓рд╛рд╕ рд╣реИред рдЖрдк рддрддреНрд╡ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдореВрд▓реНрдп рднреЗрдЬрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЦреЛрдЬ рд╣реИ рдФрд░ рдЖрдк рд╡рд╣рд╛рдВ "рд╕рд┐рдиреЗрдорд╛" рдореВрд▓реНрдп рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
driver.findElementByCssSelector(".search-input").sendKeys("");
рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:
driver.findElementByCssSelector(".search-button").click();
рдЗрд╕ рддрд░рд╣, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ, рдЖрдк рдЗрд╕рдореЗрдВ рднрд╛рдЧ рд▓реЗрдВрдЧреЗ, рд╕рднреА рд╕рд╛рдордЧреНрд░реА рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рд╕реНрдХреНрд░реАрди рдкрд░ рдирд╣реАрдВ рд░рдЦреА рдЧрдИ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдЖрдкрдХреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рддрддреНрд╡ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рддреЛ Appium рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛ рдХрд┐ рдпрд╣ рддрддреНрд╡ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЖрдЧреЗ рдХреА рдкрд░реАрдХреНрд╖рд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╡рд░ рдХреА рдЬрд╛рдПрдЧреАред
рд╕реНрдХреНрд░реАрди рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЬрд╛рд╡рд╛ рдореЗрдВ JS рдлрд╝рдВрдХреНрд╢рди рд╕реНрдХреНрд░реЙрд▓ рдЗрдирдЯреВ рд╡реНрдпреВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
((JavascriptExecutor) driver).executeScript("document.querySelector('.button-ok').scrollIntoView({block: \"end\", behavior: \"smooth\"});");
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЖрдкрдХреЛ OK рдмрдЯрди рдкрд░ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рдпрд╣ рдПрдХ рдРрд╕реА рдШрдЯрдирд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░реЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрдиреНрдп рддрддреНрд╡реЛрдВ рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдХреНрд░реЛрдо - рдЗрдВрд╕рдкреЗрдХреНрдЯ рдореЗрдВ рдХрдВрд╕реЛрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдЗрд╕ рддрддреНрд╡ рд╕реЗ рдмрдВрдзрддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдХреНрд░реЙрд▓ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдЖрдк рдЪрд░рдг 8 рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ!
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реБрдЖ рдерд╛ред
рдЙрд╕рдХрд╛ рдирд╛рдо рдХреНрд░реЙрд╕реНрд╡рд╛рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣реИред
рдЬрдм рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдореБрдЭрд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдЧрд▓рддреА рд╣реБрдИ:
тАЬMake sure the app has its webview configured for debuggingтАЭ
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рднреА рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЖрдкрдХреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреАрдмрдЧ рдмрд┐рд▓реНрдб рд╣реИ
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдбрд┐рдмрдЧ рдмрд┐рд▓реНрдб рдЗрдВрд╕реНрдкреЗрдХреНрдЯ-рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
- рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд░реЛрдореЗрдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдЗрди рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдФрд░ рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реЗрдВред
capabilities.setCapability("chromedriverExecutable", "C:\\node_modules\\appium-with-crosswalk-fix\\chromedriver\\2.28\\chromedriver.exe");
- рдЬрд╣рд╛рдВ C: \\ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ \\ рдПрдкрд┐рдпрдо-рд╕рд╛рде-рдХреНрд░реЙрд╕рд╡реЙрдХ-рдлрд┐рдХреНрд╕ \\ рдХреНрд░реЛрдореЗрдбреНрд░рд┐рд╡рд░ \\ 2.28 \\ рдХреНрд░реЛрдореЗрдбреНрд░рд┐рд╡рд░ред exe
рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рдХреНрд░реЛрдореЗрдбреНрд░рд┐рд╡рд░ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИ
рддреЛ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛: package name; import java.util.*; import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.android.AndroidElement; import io.appium.java_client.remote.MobileCapabilityType; import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.JavascriptExecutor; import java.net.MalformedURLException; import java.net.URL; import java.util.concurrent.TimeUnit; public class Main { public static void main(String[] args) throws InterruptedException { AndroidDriver<AndroidElement> driver = null; DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "MyPhone"); capabilities.setCapability(MobileCapabilityType.APP, "C:\\Appium automation\\APK\\My-debug-apk.apk"); capabilities.setCapability("chromedriverExecutable", "C:\\node_modules\\appium-with-crosswalk-fix\\chromedriver\\2.28\\chromedriver.exe"); try { driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); } catch (MalformedURLException e) { System.out.println(e.getMessage()); } Set<String> contextNames = driver.getContextHandles(); for (String contextName : contextNames) { System.out.println(contextName); } driver.context((String) contextNames.toArray()[contextNames.toArray().length - 1]); Thread.sleep(8000); driver.findElementByCssSelector(".search-input").sendKeys(""); driver.findElementByCssSelector(".search-button").click(); }
рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛:
- рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреГрд╖реНрда рдкрд░ рдЦреЛрдЬ рдлрд╝реАрд▓реНрдб рдвреВрдВрдвреЗрдВ
- рд╡рд╣рд╛рдБ "рд╕рд┐рдиреЗрдорд╛" рдХрд╛ рдЕрд░реНрде рд▓рд╛рдПрдЧрд╛
- "рдЦреЛрдЬ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
8. рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рд╣реИрдВ:
- Appium рд╕рд░реНрд╡рд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ (рдЖрдЗрдЯрдо 4)
- Appium рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЙрд░реНрдЯрдХрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
- "рд╕реНрдЯрд╛рд░реНрдЯ рд╕рд░реНрд╡рд░" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкреАрд╕реА рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдпрд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ (рдЖрдЗрдЯрдо 6)
- рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рдкреГрд╖реНрда 5 рдФрд░ рдкреГрд╖реНрда 7)
- рд░рди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ (рдпрд╛ IntelliJ IDEA рдЯреВрд▓рдмрд╛рд░ рдкрд░, рдпрд╛ рд░рди - рд░рди 'рдореЗрди')
- рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ
рдЦреИрд░, рдлрд┐рд░ рдЖрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ, рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА
рдбреЗрд╡рд▓рдкрд░ рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░
рд╣реИ ред
рдЖрдИрдУрдПрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкрд┐рдпрдо рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдирд┐рдХрд▓рд╛ред
рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдерд╛!