public class TestOpen{
private WebDriver driver;
@BeforeClass
public void TestOpen(){
IncorrectPassword incorrectPassword = new IncorrectPassword(driver);
}
@Test
public void run(){
driver.get("http://automated-testing.info/login");
incorrectPassword.LogIn();
}
}
структура проєкта надеюсь pom файлом задано стандартно .
Переделал и запустилось, изменил драйвер на static в BaseStart
class BaseStart {
static WebDriver driver;
@BeforeTest(alwaysRun = true)
public void init() {
driver = new FirefoxDriver();
}
@FindBy(id = "ember1241")
public WebElement searchButtonLogIn;
public BaseStart(){
super();
}
public BaseStart(WebDriver driver) {
PageFactory.initElements(driver, this);
this.driver = driver;
}
public void LogIn() {
searchButtonLogIn.click();
}
}
public class Start extends BaseStart {
public BaseStart base;
@Test
public void run() {
base = new BaseStart(driver);
driver.get("http://automated-testing.info");
base.LogIn();
}
}
1) Page
public class IncorrectPassword {
Webdriver driver ;
@FindBy(id = "ember128")
private WebElement searchButtonLogIn;
public IncorrectPassword(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(driver, this);
}
public void LogIn() {
searchButtonLogIn.click();
}
}
в ней могут быть токо локаторы и методы работы с локаторами . не должно быть никаких анотаций .
когда Page классов станет много лучше всего вынести в СommonPage
public IncorrectPassword(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(driver, this);
public class Start extends BaseStart {
@Test
public void run() {
IncorrectPassword incor = new IncorrectPassword(driver)
driver.get("http://automated-testing.info");
incor.LogIn() // методы лучше писать с маленькой буквы
}
}