У меня есть два тестовых примера, которые нужно выполнить 1. войти в приложение 2. Выполните некоторые операции
Ниже представлен дизайн моего кода: BaseTest. java
public abstract class BaseTest {
public WebDriver driver;
@BeforeSuite
public void openApplication() {
System.setProperty(chrome_key,chrome_value);
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-notifications");
driver = new ChromeDriver(options);
driver.manage().window().maximize();
driver.get(url);
}
}
LoginPage. java
public class LoginPage extends BasePage{
@FindBy (xpath = "//input[@id='username']")
WebElement userName;
@FindBy (xpath = "//input[@id='password']")
WebElement password;
public LoginPage(WebDriver driver) {
super(driver);
PageFactory.initElements(driver, this);
}
public void loginToApp(String username, String pwd) {
}
}
Аккаунт. java:
public class NewAccount extends BasePage{
@FindBy(xpath = "//span[text()='Accounts']/../..")
WebElement accountsTab;
public NewAccount(WebDriver driver) {
super(driver);
PageFactory.initElements(driver, this);
}
public void createNewAccount() {
}
}
LoginToApp. java:
public class LoginToApp extends BaseTest {
@Test
public void a_verifyLogin() throws IOException {
LoginPage hp = new LoginPage(driver);
hp.loginToApp(username, password);
}
}
CreateAccount. java:
public class CreateAccount extends BaseTest {
@Test
public void b_createAccountRecord() {
NewAccount na = new NewAccount(driver);
na.createNewAccount();
}
}
тест xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test name="Test">
<classes>
<class name="com.testcases.LoginToApp"/>
<class name="com.testcases.CreateAccount"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
С этой структурой фреймворка, когда я выполняю файл testng. xml, первый тест в LoginToApp выполняется должным образом. И когда элемент управления поступает на проверку в CreateAccount, драйвер становится пустым и, следовательно, не выполняет второй тест.
Ожидаемый поток: 1. инициализировать браузер 2.Запустите URL-адрес 3. Выполните метод @Test для LoginToApp. java 4. Выполните метод @Test CreateAccount. java
Можно ли достичь указанного выше потока, не делая WebDriver как stati c? Если да, объясните, пожалуйста.