рдпреВрдЖрдИ рдСрдЯреЛрдЯреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╕реЗрд▓реЗрдирд╛рдЗрдб рдкрд░ рд╕рд░рд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ

рд╣реИрд▓реЛред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдпрд╣ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкрд░реАрдХреНрд╖рдг рд░реВрдкрд░реЗрдЦрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред

рд╣рдо рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ: Java, Selenide, Alure, TestNG, Mavenред



рдкрд░рд┐рдЪрдп


рдЧрд┐рдЯрд╣рдм рдкрд░рд┐рдпреЛрдЬрдирд╛ - рд╕реЗрд▓реЗрдирд╛рдЗрдбрдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ ред

рдЕрдХреНрд╕рд░ рдкрд░реАрдХреНрд╖рдг рд╕реНрд╡рдЪрд╛рд▓рди рдкрд░ рд▓реЗрдЦ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

driver.get (тАЬURLтАЭ)
driver.find_element_by_id(тАЬIDтАЭ).send_keys(тАЬusernameтАЭ)
driver.find_element_by_id (тАЬIDтАЭ).send_keys(тАЬpasswordтАЭ)
driver.find_element_by_id(тАЬsubmitтАЭ).click()

рдЙрдореНрдореАрджреЛрдВ, рдкреЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЖрджрд┐ рдХреЗ рдХрдИ рд╕рдорд╛рди рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рдирддреАрдЬрддрди, рдПрдХ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдкрд░реАрдХреНрд╖рдХ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕рд╣реА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмреИрд╕рд╛рдЦреА рдХреЗ рд╕рд╛рде рдЕрддрд┐рд╡реГрджреНрдзрд┐ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдирдП рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рдФрд░ рдкреБрд░рд╛рдиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдХреБрдЫ рдЙрдкрдХрд░рдг рдРрд╕реЗ рднреА рд╣реИрдВ рдЬреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд╣реИрдВ рдФрд░ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдЕрддрд┐рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВред

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

рдЙрдкрдХрд░рдг


  • рд╕реЗрд▓реЗрдирд╛рдЗрдб рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╕реНрдерд┐рд░ рдУрдкрди рд╕реЛрд░реНрд╕ рдпреВрдЖрдИ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред рд╕реЗрд▓реЗрдирд╛рдЗрдб рд╕рдордп-рд╕рдордп рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдЙрди рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ, рдЖрджрд┐ред рдЖрдк StaleElementReferenceException рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВ ред рдПрдХ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЖрд╕рд╛рди рдЙрдкрдХрд░рдг рд╕реАрдЦрдирд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдЕрдм рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрд░ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
  • WebDriverManager - рд╕реЗрд▓реЗрдирд╛рдЗрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ред рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдкрде рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ -
     System.setProperty("webdriver.browser.driver", "/path_to_driver/driver"); 
  • рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реБрднрд╛рдирд╛ ред
  • TestNG рдПрдХ рдкрд░реАрдХреНрд╖рдг рдврд╛рдБрдЪрд╛ рд╣реИред
  • рдорд╛рд╡реЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛




рдЖрдЗрдП рдРрдк рдФрд░ рдкреЗрдЬ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВ ред

PageBuilder рд╡рд░реНрдЧ


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

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреГрд╖реНрда рдХреЛ рдХрдИ рд╡рд░реНрдЧреЛрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рддрддреНрд╡реЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреЛрдХрд░реА рдореЗрдВ рдПрдХ рдЙрддреНрдкрд╛рдж) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреГрд╖реНрда рдХреЗ рдореБрдЦреНрдп рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рд╕рд╛рде рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, PageBuilder рд╡рд░реНрдЧ рдореЗрдВ, рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╕рднреА рдкреГрд╖реНрда рдмрдирд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ ред

package app;

import app.pages.LoginPage;

public class PageBuilder {

    public static LoginPage buildLoginPage() {
        return new LoginPage("/login");
    }

    public static BalancePage buildBalancePage() {
        DepositForm depositForm = new DepositForm();
        WithdrawalForm withdrawalForm = new WithdrawalForm();
        return new BalancePage("/balance", depositForm, withdrawalForm);
    }
}


рдХрдХреНрд╖рд╛ AppConfig


AppConfig рд╡рд░реНрдЧ рдкрд░реАрдХреНрд╖рдг рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рд╕рд╛рдЗрдЯ рдХрд╛ рдкрддрд╛, рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдЖрджрд┐ред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рд╕рд╛рдЗрдЯ рдХрд╛ рдкрддрд╛ рд╣реИред

package app;

public class AppConfig {

    public static final String baseUrl = "https://google.com";

}

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд░реНрдЧ


рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдпрд╣ рдореБрдЦреНрдп рд╡рд░реНрдЧ рд╣реИред рдРрдк рдХреНрд▓рд╛рд╕ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ , рд╕рднреА рдкреЗрдЬ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред

package app;

import app.pages.LoginPage;

public class App {

    public LoginPage loginPage;

    public App() {
        loginPage = PageBuilder.buildLoginPage();
    }
}

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рдкреГрд╖реНрда рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдРрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдкреГрд╖реНрда рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред

рд╕рд╛рде рд╣реА рдРрдк рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬреИрд╕реЗ - рдкрдВрдЬреАрдХрд░рдг, рдкрдВрдЬреАрдХрд░рдг рдФрд░ рдЖрджреЗрд╢ рдирд┐рд░реНрдорд╛рдг, рдЖрджрд┐ред

рдпрд╣реА рд╣реИ, рдмрдбрд╝реЗ рдСрдкрд░реЗрд╢рди рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдкреЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЬрд┐рдирдХреА рдЕрдХреНрд╕рд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдкреЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ


рд╕реЗрд▓реЗрдВрдЗрдб рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдкреГрд╖реНрда рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдмреЗрд╕рдкреЗрдЬ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕реЗ рд╕рднреА рдкреЗрдЬ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рддреЗ рд╣реИрдВ ред рд╕рдВрдмрдВрдзрд┐рдд рдкреГрд╖реНрда url рдкреГрд╖реНрда рдСрдмреНрдЬреЗрдХреНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рднреА рдкреГрд╖реНрда рддрддреНрд╡реЛрдВ рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╣реБрдВрдЪ рд╕рдВрд╢реЛрдзрдХ рд╣реИ , рдЗрд╕рд▓рд┐рдП рдЖрдк рдЕрдирд┐рд╡рд╛рд░реНрдп рдФрд░ рдШреЛрд╖рд┐рдд рджреЛрдиреЛрдВ рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддрддреНрд╡реЛрдВ рд╕реЗ рдЖрдк рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдкрд╛рда рдпрд╛ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛ред

рд▓реЛрдХреЗрдЯрд░ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рдкреГрд╖реНрда рддрд░реНрдХ рдкреГрд╖реНрда рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдпрджрд┐ рдХреБрдЫ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд╡рд┐рдзрд┐ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рд▓реЛрдХреЗрдЯрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИред


package app.pages;

import com.codeborne.selenide.SelenideElement;
import helpers.Driver;
import static com.codeborne.selenide.Selenide.*;

public class LoginPage extends BasePage {

    public SelenideElement loginField = $("#login__username");
    public SelenideElement passwordField = $("#login__password");
    public SelenideElement signInButton = $("#login_enter");
    public SelenideElement termsOfUseLabel = $("label[for=\"login_agree\"]");

    public LoginPage(String pageUrl) {
        super(pageUrl);
    }
    
    public void login(String email, String password) {
        loginField.setValue(email);
        passwordField.setValue(password);
        termsOfUseLabel.click();
        signInButton.click();
        Driver.waitForUrlContains("account/accounts");
    }
}


рдЖрд░рд╛рдо


рд╕рд╣рд╛рдпрдХреЛрдВ рдореЙрдбреНрдпреВрд▓ : 2 рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ

TestConfig - рдЗрд╕ рд╡рд░реНрдЧ рд╕реЗ рдЖрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдпрд╣рд╛рдВ рднреА рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИрдВред

рдЯреЗрд╕реНрдЯ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред mvn test -Dbrowser=chrome -Dheadless=1

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкрд░реНрдпрд╛рд╡рд░рдг (рджреЗрд╡, рдордВрдЪ, рдЙрддреНрдкрд╛рджрди) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпреВрдЖрд░рдПрд▓ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред


package helpers;

public class TestConfig {

    public static String browser = "chrome";
    public static String headless = "1";

    public static void initConfig() {
        browser = System.getProperty("browser") == null ? "chrome" : System.getProperty("browser");
        headless = System.getProperty("headless") == null ? "1" : System.getProperty("headless");
    }

    public static boolean isHeadless() {
        return headless.contains("1");
    }
}

рдЪрд╛рд▓рдХ рд╡рд░реНрдЧ рдЙрдкрдпреЛрдЧреА рддрд░реАрдХреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЗ рд╕рд╛рде рд╕реЗрд▓реЗрдирд┐рдпрдо рдФрд░ рд╕реЗрд▓реЗрдирд╛рдЗрдб рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдореЗрд░рд╛ рдЖрд╡рд░рдг рд╣реИред

рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрд░реАрдХреЗ:

Driver.initDriver () - рдпрд╣рд╛рдБ рдбреНрд░рд╛рдЗрд╡рд░ / рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

   public static void initDriver() {

        // Get settings from command line

        TestConfig.initConfig();

        // Set settings for selenide browser

        Configuration.pageLoadStrategy = "eager";
        Configuration.browserSize = "1920x1080";
        Configuration.holdBrowserOpen = false;
        Configuration.screenshots = false;

        if(TestConfig.isHeadless()) {
            Configuration.headless = true;
        } else {
            Configuration.headless = false;
        }

        switch (TestConfig.browser) {
            case "chrome":
                Configuration.browser = Browsers.CHROME;
                break;
            case "firefox":
                Configuration.browser = Browsers.FIREFOX;
                break;
            default:
                Configuration.browser = Browsers.CHROME;
                break;
        }
    }

Driver.clearCookies()
Driver.close()

рдЯреЗрд╕реНрдЯ


рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛рдПрдВ A_BaseTest рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИрдВ , рдЬрд┐рд╕рдореЗрдВ рдРрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ , рд╕реЙрдлреНрдЯрдПрд╕реЗрдЯрд░ , рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреБрд▓рддрд╛ рд╣реИ рдФрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж рдХреБрдХреАрдЬрд╝ рд╕рд╛рдл рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред

рдПрдХ A_BaseTestListener рднреА рд╣реИ рдЬрд╣рд╛рдБ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрд░реАрдХреНрд╖рдг рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВред рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди, рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиред

import org.testng.annotations.Test;

public class ExampleTest extends A_BaseTest
{
    @Test
    public void loginViaEmail() {
        app.loginPage.open();
        app.loginPage.login("email@email.com", "passwords");
        
        logger.info("Sample info message");
               
        softAssert.assertEquals(2,2);
        softAssert.assertAll();
    }
}

рдЯреЗрд╕реНрдЯ рдХрдХреНрд╖рд╛рдПрдВ testng.xml рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВ ред

рдкрд░реАрдХреНрд╖рдг-рдЖрдЙрдЯрдкреБрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓реЙрдЧ рдФрд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реЛрддреЗ рд╣реИрдВ - Driver.takeScreenshot () ред

рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрд▓реНрдпреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдкрд░реАрдХреНрд╖рдг рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдХрдорд╛рдВрдб рдЪрд▓рд╛ рд╕рдХрддреЗ allure serve target/allure-resultsрд╣реИрдВ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред

рдЧрд┐рдЯрд╣рдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ - рд╕реЗрд▓реЗрдирд╛рдЗрдбрдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ

All Articles