рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрд░реАрдХреНрд╖рдг рддреЗрдЬ

рд╣рд░ рдХреЛрдИ рдЬреЛ рдЕрдкрдиреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдорд╣рдВрдЧрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдХрдИ рд▓реЛрдЧ рдХрдорд┐рдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд┐рд▓реНрдб рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреЗрд╡рд▓ рд░рд╛рдд рдореЗрдВ рд╣реА рдмрд┐рд▓реНрдб рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рддреЗрдЬ рдХрд░рддреЗ рд╣реИрдВред

рджреЗрд╢реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ


рджреЗрд╢реА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЕрдиреБрдорд╛рдирд┐рдд рд╕рд╛рд░ рдпрд╣ рд╣реИ: рдЬрдм рдПрдХ рдкрд░реАрдХреНрд╖рдг рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИ
driver.findElement(By.id(тАЬsomeIdтАЭ)).sendKeys(тАЬhelloтАЭ); 
рдлрд┐рд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдИрд╡реЗрдВрдЯ OS рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ "рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде рдХреНрд╖реЗрддреНрд░ рдореЗрдВ 'рд╣реИрд▓реЛ рд╢рдмреНрдж рджрд░реНрдЬ рдХрд░реЗрдВ"ред рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рдпрдВ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдорд╛рдиреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдзреАрд░реЗ-рдзреАрд░реЗ рдХреАрдмреЛрд░реНрдб рд╕реЗ рдкрд╛рда рджрд░реНрдЬ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
 private WebDriver firefox() { final FirefoxProfile profile = new FirefoxProfile(); profile.setEnableNativeEvents(false); return new FirefoxDriver(profile); } 

рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдореЗрдВ рддреЗрдЬ рдЪрд╛рд▓рдХ рдорд┐рд▓рд╛ред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕рдореЗрдВ рдПрдХ user.js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:
 user_pref("webdriver_enable_native_events", false); 

рдпрд╛ рдбреНрд░рд╛рдЗрд╡рд░ рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдзрд┐ рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджреЗрдВ
 private WebDriver firefox(final String profileName) { final FirefoxProfile profile = new ProfilesIni().getProfile(profileName); profile.setEnableNativeEvents(false); return new FirefoxDriver(profile); } 

рдПрдиреАрдореЗрд╢рди рдмрдВрдж рдХрд░реЗрдВ


рд╕рд╛рдЗрдЯ рдкрд░ рдПрдирд┐рдореЗрд╢рди рдмреЗрд╢рдХ рдПрдХ рдЪреАрдЬ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рджреМрд░рд╛рди рдпрд╣ рдмреБрд░рд╛рдИ рд╣реИред рдЖрдкрдХреЛ рдЗрд╕ рдПрдиреАрдореЗрд╢рди рдХреЗ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рд╣реЛрдЧреА, рдХреБрдЫ рдмреИрд╕рд╛рдЦреА рдЖрджрд┐ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреА рд╣реЛрдЧреАред рдФрд░ рд╣рд╛рдБ, рдПрдиреАрдореЗрд╢рди рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рд╕рдордп рдХреЛ рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ
 private WebDriver initDriver() { final WebDriver wrappedDriver = firefox(); final EventFiringWebDriver driver = new EventFiringWebDriver(wrappedDriver); driver.register(new AbstractWebDriverEventListener() { @Override public void afterNavigateTo(final String url, final WebDriver driver) { ((JavascriptExecutor) driver).executeScript("jQuery.fx.off = true;"); } //        //      beforeClickOn, afterNavigateBack  .. } ); return driver; } 

рдЕрдЧрд▓рд╛, рд╣рдо EventFiringWebDriver рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ afterNavigateTo () рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдХреЗ рдмрд╛рдж рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред (someUrl)ред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкрд░реАрдХреНрд╖рдг рдПрдХ рдмрдЯрди рджрдмрд╛рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдкреГрд╖реНрда рдкрд░ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, afterNavigateTo () рдХреЛ рдХреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдиреАрдореЗрд╢рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗClickOn () рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрдм рдЖрдк рдкрд╣рд▓реЗ рдХрд┐рд╕реА рдирдП рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВред

рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдВ


рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ рд╕реЗрд▓реЗрдирд┐рдпрдо рдЧреНрд░рд┐рдб рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рджреЗрдЦрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рднреА рдбреЗрдореЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдЧреНрд░рд┐рдб рдореБрдЭреЗ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдерд╛: рдЖрдкрдХреЛ рд╣рдм рдФрд░ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдорд╛рд╡реЗрди рдФрд░ рдЯреЗрд╕реНрдЯрдПрдирдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╣реИрдВред
Pom.xml рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.8.1</version> <executions> <execution> <id>run-integration-tests</id> <phase>integration-test</phase> <goals> <goal>test</goal> </goals> <configuration> <groups>integration</groups> <parallel>classes</parallel> <threadCount>2</threadCount> </configuration> </execution> </executions> </plugin> 

рдпрджрд┐ рдЖрдк рдереНрд░реЗрдб-рд╕реБрд░рдХреНрд╖рд┐рдд рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ "= рд╕рд┐рдВрдЧрд▓рдЯрди" рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕реНрдХреЛрдк = "рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк" рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдЖрдк рдХреЗрд╡рд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдкреНрд░рд┐рдВрдЧ) рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рд▓реЙрдЧрд┐рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдЖрдзрд╛-рдХрд┐рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкрд░рд┐рдгрд╛рдо


рдкрд╣рд▓реЗ, рдореИрдВ рдЬрд┐рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рдЙрд╕рдореЗрдВ рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рд▓рдЧрднрдЧ 5 рдорд┐рдирдЯ рд▓рдЧрддреЗ рдереЗ, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ 1.5 рдорд┐рдирдЯ рд╣реИред

рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП

рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХрд╛рд░реНрдп рдЬрд╛рд╡рд╛ + рд╕реЗрд▓реЗрдирд┐рдпрдо 2.8.0 + рдорд╛рд╡реЗрди + рдЯреЗрд╕реНрдЯрдПрдирдЬреА + рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 7.0.1 + рд╕реНрдкреНрд░рд┐рдВрдЧ рдмрдВрдбрд▓ рдкрд░ рдХрд┐рдП рдЧрдП рдереЗред

Source: https://habr.com/ru/post/In130912/


All Articles